Merge "DO NOT MERGE - Merge Android R QPR1"
This commit is contained in:
commit
053a3415fe
|
@ -49,7 +49,7 @@
|
|||
android:stateNotNeeded="true"
|
||||
android:windowSoftInputMode="adjustPan"
|
||||
android:screenOrientation="unspecified"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
|
||||
android:resizeableActivity="true"
|
||||
android:resumeWhilePausing="true"
|
||||
android:taskAffinity=""
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
android:stateNotNeeded="true"
|
||||
android:windowSoftInputMode="adjustPan"
|
||||
android:screenOrientation="unspecified"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
|
||||
android:resizeableActivity="true"
|
||||
android:resumeWhilePausing="true"
|
||||
android:taskAffinity=""
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
android:stateNotNeeded="true"
|
||||
android:theme="@style/LauncherTheme"
|
||||
android:screenOrientation="unspecified"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
|
||||
android:resizeableActivity="true"
|
||||
android:resumeWhilePausing="true"
|
||||
android:taskAffinity="" />
|
||||
|
|
|
@ -71,10 +71,9 @@ public class HotseatFileLog {
|
|||
}
|
||||
|
||||
private PrintWriter getWriter() {
|
||||
String fName = FILE_NAME_PREFIX + (LOG_DAYS % 10);
|
||||
if (fName.equals(mFileName)) return mCurrentWriter;
|
||||
|
||||
Calendar cal = Calendar.getInstance();
|
||||
String fName = FILE_NAME_PREFIX + (cal.get(Calendar.DAY_OF_YEAR) % 10);
|
||||
if (fName.equals(mFileName)) return mCurrentWriter;
|
||||
|
||||
boolean append = false;
|
||||
File logFile = new File(mLogsDir, fName);
|
||||
|
|
|
@ -30,7 +30,6 @@ import com.android.launcher3.provider.LauncherDbUtils;
|
|||
*/
|
||||
public class HotseatRestoreHelper {
|
||||
private final Launcher mLauncher;
|
||||
private boolean mBackupRestored = false;
|
||||
|
||||
HotseatRestoreHelper(Launcher context) {
|
||||
mLauncher = context;
|
||||
|
@ -62,7 +61,6 @@ public class HotseatRestoreHelper {
|
|||
* Finds and restores a previously saved snapshow of Favorites table
|
||||
*/
|
||||
public void restoreBackup() {
|
||||
if (mBackupRestored) return;
|
||||
MODEL_EXECUTOR.execute(() -> {
|
||||
try (LauncherDbUtils.SQLiteTransaction transaction = (LauncherDbUtils.SQLiteTransaction)
|
||||
LauncherSettings.Settings.call(
|
||||
|
@ -78,7 +76,6 @@ public class HotseatRestoreHelper {
|
|||
idp.numRows);
|
||||
backupTable.restoreFromCustomBackupTable(HYBRID_HOTSEAT_BACKUP_TABLE, true);
|
||||
transaction.commit();
|
||||
mBackupRestored = true;
|
||||
mLauncher.getModel().forceReload();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -17,6 +17,7 @@ package com.android.launcher3.uioverrides;
|
|||
|
||||
import static com.android.launcher3.LauncherState.OVERVIEW_BUTTONS;
|
||||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_ACTIONS_FADE;
|
||||
import static com.android.quickstep.views.RecentsView.CONTENT_ALPHA;
|
||||
import static com.android.quickstep.views.RecentsView.FULLSCREEN_PROGRESS;
|
||||
import static com.android.quickstep.views.RecentsView.TASK_MODALNESS;
|
||||
|
@ -57,7 +58,7 @@ public final class RecentsViewStateController extends
|
|||
mRecentsView.updateEmptyMessage();
|
||||
mRecentsView.resetTaskVisuals();
|
||||
}
|
||||
setAlphas(PropertySetter.NO_ANIM_PROPERTY_SETTER, state);
|
||||
setAlphas(PropertySetter.NO_ANIM_PROPERTY_SETTER, new StateAnimationConfig(), state);
|
||||
mRecentsView.setFullscreenProgress(state.getOverviewFullscreenProgress());
|
||||
}
|
||||
|
||||
|
@ -75,17 +76,19 @@ public final class RecentsViewStateController extends
|
|||
AnimationSuccessListener.forRunnable(mRecentsView::resetTaskVisuals));
|
||||
}
|
||||
|
||||
setAlphas(builder, toState);
|
||||
setAlphas(builder, config, toState);
|
||||
builder.setFloat(mRecentsView, FULLSCREEN_PROGRESS,
|
||||
toState.getOverviewFullscreenProgress(), LINEAR);
|
||||
}
|
||||
|
||||
private void setAlphas(PropertySetter propertySetter, LauncherState state) {
|
||||
private void setAlphas(PropertySetter propertySetter, StateAnimationConfig config,
|
||||
LauncherState state) {
|
||||
float buttonAlpha = (state.getVisibleElements(mLauncher) & OVERVIEW_BUTTONS) != 0 ? 1 : 0;
|
||||
propertySetter.setFloat(mRecentsView.getClearAllButton(), ClearAllButton.VISIBILITY_ALPHA,
|
||||
buttonAlpha, LINEAR);
|
||||
propertySetter.setFloat(mLauncher.getActionsView().getVisibilityAlpha(),
|
||||
MultiValueAlpha.VALUE, buttonAlpha, LINEAR);
|
||||
MultiValueAlpha.VALUE, buttonAlpha, config.getInterpolator(
|
||||
ANIM_OVERVIEW_ACTIONS_FADE, LINEAR));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -17,7 +17,6 @@ package com.android.launcher3.uioverrides.states;
|
|||
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
|
||||
import static com.android.launcher3.LauncherState.BACKGROUND_APP;
|
||||
import static com.android.launcher3.LauncherState.HINT_STATE;
|
||||
import static com.android.launcher3.LauncherState.HOTSEAT_ICONS;
|
||||
|
@ -26,6 +25,7 @@ import static com.android.launcher3.LauncherState.OVERVIEW;
|
|||
import static com.android.launcher3.LauncherState.OVERVIEW_PEEK;
|
||||
import static com.android.launcher3.WorkspaceStateTransitionAnimation.getSpringScaleAnimator;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL;
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL;
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL_1_7;
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL_3;
|
||||
|
@ -52,6 +52,7 @@ import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_S
|
|||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_TRANSLATE;
|
||||
import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON;
|
||||
import static com.android.quickstep.SysUINavigationMode.removeShelfFromOverview;
|
||||
import static com.android.quickstep.views.RecentsView.RECENTS_SCALE_PROPERTY;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorSet;
|
||||
|
@ -163,10 +164,15 @@ public class QuickstepAtomicAnimationFactory extends
|
|||
config.setInterpolator(ANIM_WORKSPACE_FADE, ACCEL);
|
||||
config.setInterpolator(ANIM_ALL_APPS_FADE, ACCEL);
|
||||
config.setInterpolator(ANIM_OVERVIEW_SCALE, clampToProgress(ACCEL, 0, 0.9f));
|
||||
config.setInterpolator(ANIM_OVERVIEW_TRANSLATE_X, ACCEL);
|
||||
config.setInterpolator(ANIM_OVERVIEW_FADE, DEACCEL_1_7);
|
||||
Workspace workspace = mActivity.getWorkspace();
|
||||
config.setInterpolator(ANIM_OVERVIEW_TRANSLATE_X, ACCEL_DEACCEL);
|
||||
|
||||
if (SysUINavigationMode.getMode(mActivity) == NO_BUTTON) {
|
||||
config.setInterpolator(ANIM_OVERVIEW_FADE, FINAL_FRAME);
|
||||
} else {
|
||||
config.setInterpolator(ANIM_OVERVIEW_FADE, DEACCEL_1_7);
|
||||
}
|
||||
|
||||
Workspace workspace = mActivity.getWorkspace();
|
||||
// Start from a higher workspace scale, but only if we're invisible so we don't jump.
|
||||
boolean isWorkspaceVisible = workspace.getVisibility() == VISIBLE;
|
||||
if (isWorkspaceVisible) {
|
||||
|
@ -206,13 +212,15 @@ public class QuickstepAtomicAnimationFactory extends
|
|||
config.setInterpolator(ANIM_WORKSPACE_SCALE,
|
||||
fromState == NORMAL ? ACCEL : OVERSHOOT_1_2);
|
||||
config.setInterpolator(ANIM_WORKSPACE_TRANSLATE, ACCEL);
|
||||
config.setInterpolator(ANIM_OVERVIEW_FADE, INSTANT);
|
||||
} else {
|
||||
config.setInterpolator(ANIM_WORKSPACE_SCALE, OVERSHOOT_1_2);
|
||||
config.setInterpolator(ANIM_OVERVIEW_FADE, OVERSHOOT_1_2);
|
||||
|
||||
// Scale up the recents, if it is not coming from the side
|
||||
RecentsView overview = mActivity.getOverviewPanel();
|
||||
if (overview.getVisibility() != VISIBLE || overview.getContentAlpha() == 0) {
|
||||
SCALE_PROPERTY.set(overview, RECENTS_PREPARE_SCALE);
|
||||
RECENTS_SCALE_PROPERTY.set(overview, RECENTS_PREPARE_SCALE);
|
||||
}
|
||||
}
|
||||
config.setInterpolator(ANIM_WORKSPACE_FADE, OVERSHOOT_1_2);
|
||||
|
@ -225,7 +233,6 @@ public class QuickstepAtomicAnimationFactory extends
|
|||
: OVERSHOOT_1_7;
|
||||
config.setInterpolator(ANIM_OVERVIEW_TRANSLATE_X, translationInterpolator);
|
||||
config.setInterpolator(ANIM_OVERVIEW_TRANSLATE_Y, translationInterpolator);
|
||||
config.setInterpolator(ANIM_OVERVIEW_FADE, OVERSHOOT_1_2);
|
||||
} else if (fromState == HINT_STATE && toState == NORMAL) {
|
||||
config.setInterpolator(ANIM_DEPTH, DEACCEL_3);
|
||||
if (mHintToNormalDuration == -1) {
|
||||
|
|
|
@ -25,7 +25,6 @@ import static com.android.launcher3.config.FeatureFlags.ENABLE_ALL_APPS_EDU;
|
|||
import static com.android.launcher3.config.FeatureFlags.ENABLE_QUICKSTEP_LIVE_TILE;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_HOME_GESTURE;
|
||||
import static com.android.launcher3.touch.AbstractStateChangeTouchController.SUCCESS_TRANSITION_PROGRESS;
|
||||
import static com.android.quickstep.views.RecentsView.ADJACENT_PAGE_OFFSET;
|
||||
import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS;
|
||||
|
||||
import android.animation.ValueAnimator;
|
||||
|
@ -45,6 +44,7 @@ import com.android.launcher3.anim.Interpolators;
|
|||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.compat.AccessibilityManagerCompat;
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.graphics.OverviewScrim;
|
||||
import com.android.launcher3.logging.StatsLogManager;
|
||||
import com.android.launcher3.states.StateAnimationConfig;
|
||||
import com.android.launcher3.testing.TestProtocol;
|
||||
|
@ -52,7 +52,9 @@ import com.android.launcher3.touch.SingleAxisSwipeDetector;
|
|||
import com.android.launcher3.userevent.nano.LauncherLogProto;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
|
||||
import com.android.launcher3.util.TouchController;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.util.AssistantUtilities;
|
||||
import com.android.quickstep.util.OverviewToHomeAnim;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
|
||||
|
@ -63,6 +65,8 @@ public class NavBarToHomeTouchController implements TouchController,
|
|||
SingleAxisSwipeDetector.Listener {
|
||||
|
||||
private static final Interpolator PULLBACK_INTERPOLATOR = DEACCEL_3;
|
||||
// The min amount of overview scrim we keep during the transition.
|
||||
private static final float OVERVIEW_TO_HOME_SCRIM_MULTIPLIER = 0.5f;
|
||||
|
||||
private final Launcher mLauncher;
|
||||
private final SingleAxisSwipeDetector mSwipeDetector;
|
||||
|
@ -156,8 +160,13 @@ public class NavBarToHomeTouchController implements TouchController,
|
|||
final PendingAnimation builder = new PendingAnimation(accuracy);
|
||||
if (mStartState.overviewUi) {
|
||||
RecentsView recentsView = mLauncher.getOverviewPanel();
|
||||
builder.setFloat(recentsView, ADJACENT_PAGE_OFFSET,
|
||||
-mPullbackDistance / recentsView.getPageOffsetScale(), PULLBACK_INTERPOLATOR);
|
||||
AnimatorControllerWithResistance.createRecentsResistanceFromOverviewAnim(mLauncher,
|
||||
builder);
|
||||
|
||||
builder.setFloat(mLauncher.getDragLayer().getOverviewScrim(),
|
||||
OverviewScrim.SCRIM_MULTIPLIER, OVERVIEW_TO_HOME_SCRIM_MULTIPLIER,
|
||||
PULLBACK_INTERPOLATOR);
|
||||
|
||||
if (ENABLE_QUICKSTEP_LIVE_TILE.get()) {
|
||||
builder.addOnFrameCallback(
|
||||
() -> recentsView.redrawLiveTile(false /* mightNeedToRefill */));
|
||||
|
@ -212,8 +221,13 @@ public class NavBarToHomeTouchController implements TouchController,
|
|||
recentsView.switchToScreenshot(null,
|
||||
() -> recentsView.finishRecentsAnimation(true /* toRecents */, null));
|
||||
}
|
||||
mLauncher.getStateManager().goToState(mEndState, true,
|
||||
() -> onSwipeInteractionCompleted(mEndState));
|
||||
if (mStartState.overviewUi) {
|
||||
new OverviewToHomeAnim(mLauncher, () -> onSwipeInteractionCompleted(mEndState))
|
||||
.animateWithVelocity(velocity);
|
||||
} else {
|
||||
mLauncher.getStateManager().goToState(mEndState, true,
|
||||
() -> onSwipeInteractionCompleted(mEndState));
|
||||
}
|
||||
if (mStartState != mEndState) {
|
||||
logStateChange(mStartState.containerType, logAction);
|
||||
}
|
||||
|
|
|
@ -21,11 +21,8 @@ import static com.android.launcher3.LauncherState.NORMAL;
|
|||
import static com.android.launcher3.LauncherState.OVERVIEW;
|
||||
import static com.android.launcher3.Utilities.EDGE_NAV_BAR;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.PLAY_ATOMIC_OVERVIEW_PEEK;
|
||||
import static com.android.launcher3.util.VibratorWrapper.OVERVIEW_HAPTIC;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.graphics.PointF;
|
||||
|
@ -35,14 +32,15 @@ import android.view.MotionEvent;
|
|||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.LauncherState;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.anim.AnimationSuccessListener;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.graphics.OverviewScrim;
|
||||
import com.android.launcher3.statemanager.StateManager;
|
||||
import com.android.launcher3.states.StateAnimationConfig;
|
||||
import com.android.launcher3.testing.TestProtocol;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
|
||||
import com.android.launcher3.util.VibratorWrapper;
|
||||
import com.android.quickstep.util.StaggeredWorkspaceAnim;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.util.OverviewToHomeAnim;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
|
||||
/**
|
||||
|
@ -62,10 +60,10 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
|
||||
private boolean mDidTouchStartInNavBar;
|
||||
private boolean mReachedOverview;
|
||||
private boolean mIsOverviewRehidden;
|
||||
private boolean mIsHomeStaggeredAnimFinished;
|
||||
// The last recorded displacement before we reached overview.
|
||||
private PointF mStartDisplacement = new PointF();
|
||||
private float mStartY;
|
||||
private AnimatorPlaybackController mOverviewResistYAnim;
|
||||
|
||||
// Normal to Hint animation has flag SKIP_OVERVIEW, so we update this scrim with this animator.
|
||||
private ObjectAnimator mNormalToHintOverviewScrimAnimator;
|
||||
|
@ -123,6 +121,7 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
mToState.getOverviewScrimAlpha(mLauncher));
|
||||
}
|
||||
mReachedOverview = false;
|
||||
mOverviewResistYAnim = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -137,6 +136,11 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
public void onDragEnd(float velocity) {
|
||||
super.onDragEnd(velocity);
|
||||
mNormalToHintOverviewScrimAnimator = null;
|
||||
if (mLauncher.isInState(OVERVIEW)) {
|
||||
// Normally we would cleanup the state based on mCurrentAnimation, but since we stop
|
||||
// using that when we pause to go to Overview, we need to clean up ourselves.
|
||||
clearState();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -160,6 +164,9 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
mNormalToHintOverviewScrimAnimator = null;
|
||||
mCurrentAnimation.dispatchOnCancelWithoutCancelRunnable(() -> {
|
||||
mLauncher.getStateManager().goToState(OVERVIEW, true, () -> {
|
||||
mOverviewResistYAnim = AnimatorControllerWithResistance
|
||||
.createRecentsResistanceFromOverviewAnim(mLauncher, null)
|
||||
.createPlaybackController();
|
||||
mReachedOverview = true;
|
||||
maybeSwipeInteractionToOverviewComplete();
|
||||
});
|
||||
|
@ -173,13 +180,6 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
}
|
||||
}
|
||||
|
||||
// Used if flinging back to home after reaching overview
|
||||
private void maybeSwipeInteractionToHomeComplete() {
|
||||
if (mIsHomeStaggeredAnimFinished && mIsOverviewRehidden) {
|
||||
onSwipeInteractionCompleted(NORMAL, Touch.FLING);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean handlingOverviewAnim() {
|
||||
return mDidTouchStartInNavBar && super.handlingOverviewAnim();
|
||||
|
@ -193,11 +193,17 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
if (mMotionPauseDetector.isPaused()) {
|
||||
if (!mReachedOverview) {
|
||||
mStartDisplacement.set(xDisplacement, yDisplacement);
|
||||
mStartY = event.getY();
|
||||
} else {
|
||||
mRecentsView.setTranslationX((xDisplacement - mStartDisplacement.x)
|
||||
* OVERVIEW_MOVEMENT_FACTOR);
|
||||
mRecentsView.setTranslationY((yDisplacement - mStartDisplacement.y)
|
||||
* OVERVIEW_MOVEMENT_FACTOR);
|
||||
float yProgress = (mStartDisplacement.y - yDisplacement) / mStartY;
|
||||
if (yProgress > 0 && mOverviewResistYAnim != null) {
|
||||
mOverviewResistYAnim.setPlayFraction(yProgress);
|
||||
} else {
|
||||
mRecentsView.setTranslationY((yDisplacement - mStartDisplacement.y)
|
||||
* OVERVIEW_MOVEMENT_FACTOR);
|
||||
}
|
||||
}
|
||||
// Stay in Overview.
|
||||
return true;
|
||||
|
@ -212,35 +218,8 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
StateManager<LauncherState> stateManager = mLauncher.getStateManager();
|
||||
boolean goToHomeInsteadOfOverview = isFling;
|
||||
if (goToHomeInsteadOfOverview) {
|
||||
if (velocity > 0) {
|
||||
stateManager.goToState(NORMAL, true,
|
||||
() -> onSwipeInteractionCompleted(NORMAL, Touch.FLING));
|
||||
} else {
|
||||
mIsHomeStaggeredAnimFinished = mIsOverviewRehidden = false;
|
||||
|
||||
StaggeredWorkspaceAnim staggeredWorkspaceAnim = new StaggeredWorkspaceAnim(
|
||||
mLauncher, velocity, false /* animateOverviewScrim */);
|
||||
staggeredWorkspaceAnim.addAnimatorListener(new AnimationSuccessListener() {
|
||||
@Override
|
||||
public void onAnimationSuccess(Animator animator) {
|
||||
mIsHomeStaggeredAnimFinished = true;
|
||||
maybeSwipeInteractionToHomeComplete();
|
||||
}
|
||||
}).start();
|
||||
|
||||
// StaggeredWorkspaceAnim doesn't animate overview, so we handle it here.
|
||||
stateManager.cancelAnimation();
|
||||
StateAnimationConfig config = new StateAnimationConfig();
|
||||
config.duration = OVERVIEW.getTransitionDuration(mLauncher);
|
||||
config.animFlags = PLAY_ATOMIC_OVERVIEW_PEEK;
|
||||
AnimatorSet anim = stateManager.createAtomicAnimation(
|
||||
stateManager.getState(), NORMAL, config);
|
||||
anim.addListener(AnimationSuccessListener.forRunnable(() -> {
|
||||
mIsOverviewRehidden = true;
|
||||
maybeSwipeInteractionToHomeComplete();
|
||||
}));
|
||||
anim.start();
|
||||
}
|
||||
new OverviewToHomeAnim(mLauncher, ()-> onSwipeInteractionCompleted(NORMAL, Touch.FLING))
|
||||
.animateWithVelocity(velocity);
|
||||
}
|
||||
if (mReachedOverview) {
|
||||
float distanceDp = dpiFromPx(Math.max(
|
||||
|
@ -256,6 +235,13 @@ public class NoButtonNavbarToOverviewTouchController extends FlingAndHoldTouchCo
|
|||
.withEndAction(goToHomeInsteadOfOverview
|
||||
? null
|
||||
: this::maybeSwipeInteractionToOverviewComplete);
|
||||
if (!goToHomeInsteadOfOverview) {
|
||||
// Return to normal properties for the overview state.
|
||||
StateAnimationConfig config = new StateAnimationConfig();
|
||||
config.duration = duration;
|
||||
LauncherState state = mLauncher.getStateManager().getState();
|
||||
mLauncher.getStateManager().createAtomicAnimation(state, state, config).start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.android.launcher3.uioverrides.touchcontrollers;
|
||||
|
||||
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
|
||||
import static com.android.launcher3.LauncherState.HOTSEAT_ICONS;
|
||||
import static com.android.launcher3.LauncherState.NORMAL;
|
||||
import static com.android.launcher3.LauncherState.OVERVIEW;
|
||||
|
@ -23,7 +22,6 @@ import static com.android.launcher3.LauncherState.OVERVIEW_BUTTONS;
|
|||
import static com.android.launcher3.LauncherState.QUICK_SWITCH;
|
||||
import static com.android.launcher3.anim.AlphaUpdateListener.ALPHA_CUTOFF_THRESHOLD;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL_0_75;
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL;
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL_5;
|
||||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
import static com.android.launcher3.anim.Interpolators.scrollInterpolatorForVelocity;
|
||||
|
@ -47,6 +45,8 @@ import static com.android.quickstep.util.ShelfPeekAnim.ShelfAnimState.HIDE;
|
|||
import static com.android.quickstep.util.ShelfPeekAnim.ShelfAnimState.PEEK;
|
||||
import static com.android.quickstep.views.RecentsView.ADJACENT_PAGE_OFFSET;
|
||||
import static com.android.quickstep.views.RecentsView.FULLSCREEN_PROGRESS;
|
||||
import static com.android.quickstep.views.RecentsView.RECENTS_SCALE_PROPERTY;
|
||||
import static com.android.quickstep.views.RecentsView.TASK_SECONDARY_TRANSLATION;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
|
||||
|
||||
import android.animation.Animator;
|
||||
|
@ -74,7 +74,9 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
|
|||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
|
||||
import com.android.launcher3.util.TouchController;
|
||||
import com.android.launcher3.util.VibratorWrapper;
|
||||
import com.android.quickstep.AnimatedFloat;
|
||||
import com.android.quickstep.SystemUiProxy;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.util.LayoutUtils;
|
||||
import com.android.quickstep.util.MotionPauseDetector;
|
||||
import com.android.quickstep.util.ShelfPeekAnim;
|
||||
|
@ -90,16 +92,17 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
BothAxesSwipeDetector.Listener, MotionPauseDetector.OnMotionPauseListener {
|
||||
|
||||
/** The minimum progress of the scale/translationY animation until drag end. */
|
||||
private static final float Y_ANIM_MIN_PROGRESS = 0.15f;
|
||||
private static final float Y_ANIM_MIN_PROGRESS = 0.25f;
|
||||
private static final Interpolator FADE_OUT_INTERPOLATOR = DEACCEL_5;
|
||||
private static final Interpolator TRANSLATE_OUT_INTERPOLATOR = ACCEL_0_75;
|
||||
private static final Interpolator SCALE_DOWN_INTERPOLATOR = DEACCEL;
|
||||
private static final Interpolator SCALE_DOWN_INTERPOLATOR = LINEAR;
|
||||
|
||||
private final BaseQuickstepLauncher mLauncher;
|
||||
private final BothAxesSwipeDetector mSwipeDetector;
|
||||
private final ShelfPeekAnim mShelfPeekAnim;
|
||||
private final float mXRange;
|
||||
private final float mYRange;
|
||||
private final float mMaxYProgress;
|
||||
private final MotionPauseDetector mMotionPauseDetector;
|
||||
private final float mMotionPauseMinDisplacement;
|
||||
private final LauncherRecentsView mRecentsView;
|
||||
|
@ -113,7 +116,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
// and the other two to set overview properties based on x and y progress.
|
||||
private AnimatorPlaybackController mNonOverviewAnim;
|
||||
private AnimatorPlaybackController mXOverviewAnim;
|
||||
private AnimatorPlaybackController mYOverviewAnim;
|
||||
private AnimatedFloat mYOverviewAnim;
|
||||
|
||||
public NoButtonQuickSwitchTouchController(BaseQuickstepLauncher launcher) {
|
||||
mLauncher = launcher;
|
||||
|
@ -123,6 +126,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
mXRange = mLauncher.getDeviceProfile().widthPx / 2f;
|
||||
mYRange = LayoutUtils.getShelfTrackingDistance(
|
||||
mLauncher, mLauncher.getDeviceProfile(), mRecentsView.getPagedOrientationHandler());
|
||||
mMaxYProgress = mLauncher.getDeviceProfile().heightPx / mYRange;
|
||||
mMotionPauseDetector = new MotionPauseDetector(mLauncher);
|
||||
mMotionPauseMinDisplacement = mLauncher.getResources().getDimension(
|
||||
R.dimen.motion_pause_detector_min_displacement_from_app);
|
||||
|
@ -244,7 +248,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
final LauncherState toState = OVERVIEW;
|
||||
|
||||
// Set RecentView's initial properties.
|
||||
SCALE_PROPERTY.set(mRecentsView, fromState.getOverviewScaleAndOffset(mLauncher)[0]);
|
||||
RECENTS_SCALE_PROPERTY.set(mRecentsView, fromState.getOverviewScaleAndOffset(mLauncher)[0]);
|
||||
ADJACENT_PAGE_OFFSET.set(mRecentsView, 1f);
|
||||
mRecentsView.setContentAlpha(1);
|
||||
mRecentsView.setFullscreenProgress(fromState.getOverviewFullscreenProgress());
|
||||
|
@ -266,11 +270,22 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
// - RecentsView scale
|
||||
// - RecentsView fullscreenProgress
|
||||
PendingAnimation yAnim = new PendingAnimation((long) (mYRange * 2));
|
||||
yAnim.setFloat(mRecentsView, SCALE_PROPERTY, scaleAndOffset[0], SCALE_DOWN_INTERPOLATOR);
|
||||
yAnim.setFloat(mRecentsView, RECENTS_SCALE_PROPERTY, scaleAndOffset[0],
|
||||
SCALE_DOWN_INTERPOLATOR);
|
||||
yAnim.setFloat(mRecentsView, FULLSCREEN_PROGRESS,
|
||||
toState.getOverviewFullscreenProgress(), SCALE_DOWN_INTERPOLATOR);
|
||||
mYOverviewAnim = yAnim.createPlaybackController();
|
||||
mYOverviewAnim.dispatchOnStart();
|
||||
AnimatorPlaybackController yNormalController = yAnim.createPlaybackController();
|
||||
AnimatorControllerWithResistance yAnimWithResistance = AnimatorControllerWithResistance
|
||||
.createForRecents(yNormalController, mLauncher,
|
||||
mRecentsView.getPagedViewOrientedState(), mLauncher.getDeviceProfile(),
|
||||
mRecentsView, RECENTS_SCALE_PROPERTY, mRecentsView,
|
||||
TASK_SECONDARY_TRANSLATION);
|
||||
mYOverviewAnim = new AnimatedFloat(() -> {
|
||||
if (mYOverviewAnim != null) {
|
||||
yAnimWithResistance.setProgress(mYOverviewAnim.value, mMaxYProgress);
|
||||
}
|
||||
});
|
||||
yNormalController.dispatchOnStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -306,7 +321,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
mXOverviewAnim.setPlayFraction(xProgress);
|
||||
}
|
||||
if (mYOverviewAnim != null) {
|
||||
mYOverviewAnim.setPlayFraction(yProgress);
|
||||
mYOverviewAnim.updateValue(yProgress);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -353,9 +368,11 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
} else if (verticalFling) {
|
||||
targetState = velocity.y > 0 ? QUICK_SWITCH : NORMAL;
|
||||
} else {
|
||||
// If user isn't flinging, just snap to the closest state based on x progress.
|
||||
// If user isn't flinging, just snap to the closest state.
|
||||
boolean passedHorizontalThreshold = mXOverviewAnim.getInterpolatedProgress() > 0.5f;
|
||||
targetState = passedHorizontalThreshold ? QUICK_SWITCH : NORMAL;
|
||||
boolean passedVerticalThreshold = mYOverviewAnim.value > 1f;
|
||||
targetState = passedHorizontalThreshold && !passedVerticalThreshold
|
||||
? QUICK_SWITCH : NORMAL;
|
||||
}
|
||||
|
||||
// Animate the various components to the target state.
|
||||
|
@ -374,9 +391,9 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
|
||||
boolean flingUpToNormal = verticalFling && velocity.y < 0 && targetState == NORMAL;
|
||||
|
||||
float yProgress = mYOverviewAnim.getProgressFraction();
|
||||
float yProgress = mYOverviewAnim.value;
|
||||
float startYProgress = Utilities.boundToRange(yProgress
|
||||
- velocity.y * getSingleFrameMs(mLauncher) / mYRange, 0f, 1f);
|
||||
- velocity.y * getSingleFrameMs(mLauncher) / mYRange, 0f, mMaxYProgress);
|
||||
final float endYProgress;
|
||||
if (flingUpToNormal) {
|
||||
endYProgress = 1;
|
||||
|
@ -386,12 +403,11 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
} else {
|
||||
endYProgress = 0;
|
||||
}
|
||||
long yDuration = BaseSwipeDetector.calculateDuration(velocity.y,
|
||||
Math.abs(endYProgress - startYProgress));
|
||||
ValueAnimator yOverviewAnim = mYOverviewAnim.getAnimationPlayer();
|
||||
yOverviewAnim.setFloatValues(startYProgress, endYProgress);
|
||||
float yDistanceToCover = Math.abs(endYProgress - startYProgress) * mYRange;
|
||||
long yDuration = (long) (yDistanceToCover / Math.max(1f, Math.abs(velocity.y)));
|
||||
ValueAnimator yOverviewAnim = mYOverviewAnim.animateToValue(startYProgress, endYProgress);
|
||||
yOverviewAnim.setDuration(yDuration);
|
||||
mYOverviewAnim.dispatchOnStart();
|
||||
mYOverviewAnim.updateValue(startYProgress);
|
||||
|
||||
ValueAnimator nonOverviewAnim = mNonOverviewAnim.getAnimationPlayer();
|
||||
if (flingUpToNormal && !mIsHomeScreenVisible) {
|
||||
|
@ -456,7 +472,7 @@ public class NoButtonQuickSwitchTouchController implements TouchController,
|
|||
mXOverviewAnim.getAnimationPlayer().cancel();
|
||||
}
|
||||
if (mYOverviewAnim != null) {
|
||||
mYOverviewAnim.getAnimationPlayer().cancel();
|
||||
mYOverviewAnim.cancelAnimation();
|
||||
}
|
||||
mShelfPeekAnim.setShelfState(ShelfAnimState.CANCEL, LINEAR, 0);
|
||||
mMotionPauseDetector.clear();
|
||||
|
|
|
@ -25,6 +25,7 @@ import android.animation.Animator;
|
|||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.animation.Interpolator;
|
||||
|
||||
import com.android.launcher3.AbstractFloatingView;
|
||||
import com.android.launcher3.BaseDraggingActivity;
|
||||
|
@ -82,7 +83,15 @@ public abstract class TaskViewTouchController<T extends BaseDraggingActivity>
|
|||
mDetector = new SingleAxisSwipeDetector(activity, this, dir);
|
||||
}
|
||||
|
||||
private boolean canInterceptTouch() {
|
||||
private boolean canInterceptTouch(MotionEvent ev) {
|
||||
if ((ev.getEdgeFlags() & Utilities.EDGE_NAV_BAR) != 0) {
|
||||
// Don't intercept swipes on the nav bar, as user might be trying to go home
|
||||
// during a task dismiss animation.
|
||||
if (mCurrentAnimation != null) {
|
||||
mCurrentAnimation.getAnimationPlayer().end();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (mCurrentAnimation != null) {
|
||||
mCurrentAnimation.forceFinishIfCloseToEnd();
|
||||
}
|
||||
|
@ -118,7 +127,7 @@ public abstract class TaskViewTouchController<T extends BaseDraggingActivity>
|
|||
clearState();
|
||||
}
|
||||
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
mNoIntercept = !canInterceptTouch();
|
||||
mNoIntercept = !canInterceptTouch(ev);
|
||||
if (mNoIntercept) {
|
||||
return false;
|
||||
}
|
||||
|
@ -206,14 +215,19 @@ public abstract class TaskViewTouchController<T extends BaseDraggingActivity>
|
|||
long maxDuration = 2 * secondaryLayerDimension;
|
||||
int verticalFactor = orientationHandler.getTaskDragDisplacementFactor(mIsRtl);
|
||||
int secondaryTaskDimension = orientationHandler.getSecondaryDimension(mTaskBeingDragged);
|
||||
// The interpolator controlling the most prominent visual movement. We use this to determine
|
||||
// whether we passed SUCCESS_TRANSITION_PROGRESS.
|
||||
final Interpolator currentInterpolator;
|
||||
if (goingUp) {
|
||||
currentInterpolator = Interpolators.LINEAR;
|
||||
mPendingAnimation = mRecentsView.createTaskDismissAnimation(mTaskBeingDragged,
|
||||
true /* animateTaskView */, true /* removeTask */, maxDuration);
|
||||
|
||||
mEndDisplacement = -secondaryTaskDimension;
|
||||
} else {
|
||||
currentInterpolator = Interpolators.ZOOM_IN;
|
||||
mPendingAnimation = mRecentsView.createTaskLaunchAnimation(
|
||||
mTaskBeingDragged, maxDuration, Interpolators.ZOOM_IN);
|
||||
mTaskBeingDragged, maxDuration, currentInterpolator);
|
||||
|
||||
// Since the thumbnail is what is filling the screen, based the end displacement on it.
|
||||
View thumbnailView = mTaskBeingDragged.getThumbnail();
|
||||
|
@ -228,6 +242,9 @@ public abstract class TaskViewTouchController<T extends BaseDraggingActivity>
|
|||
}
|
||||
mCurrentAnimation = mPendingAnimation.createPlaybackController()
|
||||
.setOnCancelRunnable(this::clearState);
|
||||
// Setting this interpolator doesn't affect the visual motion, but is used to determine
|
||||
// whether we successfully reached the target state in onDragEnd().
|
||||
mCurrentAnimation.getTarget().setInterpolator(currentInterpolator);
|
||||
onUserControlledAnimationCreated(mCurrentAnimation);
|
||||
mCurrentAnimation.getTarget().addListener(this);
|
||||
mCurrentAnimation.dispatchOnStart();
|
||||
|
|
|
@ -24,6 +24,7 @@ import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MOD
|
|||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.app.ActivityManager.RunningTaskInfo;
|
||||
import android.util.Log;
|
||||
import android.view.animation.Interpolator;
|
||||
|
||||
|
@ -52,17 +53,17 @@ final class AppToOverviewAnimationProvider<T extends StatefulActivity<?>> extend
|
|||
|
||||
private final BaseActivityInterface<?, T> mActivityInterface;
|
||||
// The id of the currently running task that is transitioning to overview.
|
||||
private final int mTargetTaskId;
|
||||
private final RunningTaskInfo mTargetTask;
|
||||
private final RecentsAnimationDeviceState mDeviceState;
|
||||
|
||||
private T mActivity;
|
||||
private RecentsView mRecentsView;
|
||||
|
||||
AppToOverviewAnimationProvider(
|
||||
BaseActivityInterface<?, T> activityInterface, int targetTaskId,
|
||||
BaseActivityInterface<?, T> activityInterface, RunningTaskInfo targetTask,
|
||||
RecentsAnimationDeviceState deviceState) {
|
||||
mActivityInterface = activityInterface;
|
||||
mTargetTaskId = targetTaskId;
|
||||
mTargetTask = targetTask;
|
||||
mDeviceState = deviceState;
|
||||
}
|
||||
|
||||
|
@ -73,13 +74,13 @@ final class AppToOverviewAnimationProvider<T extends StatefulActivity<?>> extend
|
|||
* @param wasVisible true if it was visible before
|
||||
*/
|
||||
boolean onActivityReady(T activity, Boolean wasVisible) {
|
||||
activity.<RecentsView>getOverviewPanel().showCurrentTask(mTargetTaskId);
|
||||
activity.<RecentsView>getOverviewPanel().showCurrentTask(mTargetTask);
|
||||
AbstractFloatingView.closeAllOpenViews(activity, wasVisible);
|
||||
BaseActivityInterface.AnimationFactory factory = mActivityInterface.prepareRecentsUI(
|
||||
mDeviceState,
|
||||
wasVisible, (controller) -> {
|
||||
controller.dispatchOnStart();
|
||||
controller.getAnimationPlayer().end();
|
||||
controller.getNormalController().dispatchOnStart();
|
||||
controller.getNormalController().getAnimationPlayer().end();
|
||||
});
|
||||
factory.createActivityInterface(RECENTS_LAUNCH_DURATION);
|
||||
factory.setRecentsAttachedToAppWindow(true, false);
|
||||
|
@ -122,7 +123,8 @@ final class AppToOverviewAnimationProvider<T extends StatefulActivity<?>> extend
|
|||
wallpaperTargets, MODE_CLOSING);
|
||||
|
||||
// Use the top closing app to determine the insets for the animation
|
||||
RemoteAnimationTargetCompat runningTaskTarget = targets.findTask(mTargetTaskId);
|
||||
RemoteAnimationTargetCompat runningTaskTarget = mTargetTask == null ? null
|
||||
: targets.findTask(mTargetTask.taskId);
|
||||
if (runningTaskTarget == null) {
|
||||
Log.e(TAG, "No closing app");
|
||||
return pa.buildAnim();
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package com.android.quickstep;
|
||||
|
||||
import static android.widget.Toast.LENGTH_SHORT;
|
||||
|
||||
import static com.android.launcher3.config.FeatureFlags.ENABLE_QUICKSTEP_LIVE_TILE;
|
||||
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
|
||||
import static com.android.launcher3.util.VibratorWrapper.OVERVIEW_HAPTIC;
|
||||
|
@ -27,11 +29,13 @@ import android.graphics.Rect;
|
|||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.UiThread;
|
||||
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.statemanager.StatefulActivity;
|
||||
import com.android.launcher3.testing.TestProtocol;
|
||||
import com.android.launcher3.util.VibratorWrapper;
|
||||
|
@ -140,10 +144,10 @@ public abstract class BaseSwipeUpHandler<T extends StatefulActivity<?>, Q extend
|
|||
mRecentsView.getNextPageTaskView().launchTask(false /* animate */,
|
||||
true /* freezeTaskList */);
|
||||
} else {
|
||||
int taskId = mRecentsView.getNextPageTaskView().getTask().key.id;
|
||||
if (!mCanceled) {
|
||||
TaskView nextTask = mRecentsView.getTaskView(taskId);
|
||||
TaskView nextTask = mRecentsView.getNextPageTaskView();
|
||||
if (nextTask != null) {
|
||||
int taskId = nextTask.getTask().key.id;
|
||||
mGestureState.updateLastStartedTaskId(taskId);
|
||||
boolean hasTaskPreviouslyAppeared = mGestureState.getPreviouslyAppearedTaskIds()
|
||||
.contains(taskId);
|
||||
|
@ -160,6 +164,10 @@ public abstract class BaseSwipeUpHandler<T extends StatefulActivity<?>, Q extend
|
|||
mRecentsAnimationController.finish(true /* toRecents */, null);
|
||||
}
|
||||
}, MAIN_EXECUTOR.getHandler());
|
||||
} else {
|
||||
mActivityInterface.onLaunchTaskFailed();
|
||||
Toast.makeText(mContext, R.string.activity_not_available, LENGTH_SHORT).show();
|
||||
mRecentsAnimationController.finish(true /* toRecents */, null);
|
||||
}
|
||||
}
|
||||
mCanceled = false;
|
||||
|
@ -357,8 +365,7 @@ public abstract class BaseSwipeUpHandler<T extends StatefulActivity<?>, Q extend
|
|||
*/
|
||||
protected void applyWindowTransform() {
|
||||
if (mWindowTransitionController != null) {
|
||||
float progress = mCurrentShift.value / mDragLengthFactor;
|
||||
mWindowTransitionController.setPlayFraction(progress);
|
||||
mWindowTransitionController.setProgress(mCurrentShift.value, mDragLengthFactor);
|
||||
}
|
||||
if (mRecentsAnimationTargets != null) {
|
||||
if (mRecentsViewScrollLinked) {
|
||||
|
|
|
@ -21,7 +21,6 @@ import static com.android.launcher3.anim.Interpolators.DEACCEL;
|
|||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
import static com.android.launcher3.anim.Interpolators.OVERSHOOT_1_2;
|
||||
import static com.android.launcher3.config.FeatureFlags.ENABLE_QUICKSTEP_LIVE_TILE;
|
||||
import static com.android.launcher3.config.FeatureFlags.UNSTABLE_SPRINGS;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_BACKGROUND;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.IGNORE;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_HOME_GESTURE;
|
||||
|
@ -45,7 +44,6 @@ import static com.android.quickstep.views.RecentsView.UPDATE_SYSUI_FLAGS_THRESHO
|
|||
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.TimeInterpolator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.ActivityManager;
|
||||
|
@ -67,7 +65,6 @@ import com.android.launcher3.DeviceProfile;
|
|||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.anim.AnimationSuccessListener;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.anim.Interpolators;
|
||||
import com.android.launcher3.logging.StatsLogManager;
|
||||
import com.android.launcher3.logging.UserEventDispatcher;
|
||||
|
@ -80,6 +77,7 @@ import com.android.quickstep.BaseActivityInterface.AnimationFactory;
|
|||
import com.android.quickstep.GestureState.GestureEndTarget;
|
||||
import com.android.quickstep.inputconsumers.OverviewInputConsumer;
|
||||
import com.android.quickstep.util.ActiveGestureLog;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.util.RectFSpringAnim;
|
||||
import com.android.quickstep.util.ShelfPeekAnim;
|
||||
import com.android.quickstep.util.ShelfPeekAnim.ShelfAnimState;
|
||||
|
@ -181,8 +179,7 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
private ThumbnailData mTaskSnapshot;
|
||||
|
||||
// Used to control launcher components throughout the swipe gesture.
|
||||
private AnimatorPlaybackController mLauncherTransitionController;
|
||||
private boolean mHasLauncherTransitionControllerStarted;
|
||||
private AnimatorControllerWithResistance mLauncherTransitionController;
|
||||
|
||||
private AnimationFactory mAnimationFactory = (t) -> { };
|
||||
|
||||
|
@ -266,10 +263,6 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
mStateCallback.runOnceAtState(STATE_HANDLER_INVALIDATED | STATE_RESUME_LAST_TASK,
|
||||
this::notifyTransitionCancelled);
|
||||
|
||||
mGestureState.runOnceAtState(STATE_END_TARGET_SET,
|
||||
() -> mDeviceState.onEndTargetCalculated(mGestureState.getEndTarget(),
|
||||
mActivityInterface));
|
||||
|
||||
if (!ENABLE_QUICKSTEP_LIVE_TILE.get()) {
|
||||
mStateCallback.addChangeListener(STATE_APP_CONTROLLER_RECEIVED | STATE_LAUNCHER_PRESENT
|
||||
| STATE_SCREENSHOT_VIEW_SHOWN | STATE_CAPTURE_SCREENSHOT,
|
||||
|
@ -337,7 +330,7 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
if (mStateCallback.hasStates(STATE_HANDLER_INVALIDATED)) {
|
||||
return;
|
||||
}
|
||||
mTaskViewSimulator.setRecentsConfiguration(mActivity.getResources().getConfiguration());
|
||||
mTaskViewSimulator.setRecentsRotation(mActivity.getDisplay().getRotation());
|
||||
|
||||
// If we've already ended the gesture and are going home, don't prepare recents UI,
|
||||
// as that will set the state as BACKGROUND_APP, overriding the animation to NORMAL.
|
||||
|
@ -400,6 +393,11 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
mGestureState.getActivityInterface().setOnDeferredActivityLaunchCallback(
|
||||
mOnDeferredActivityLaunch);
|
||||
|
||||
mGestureState.runOnceAtState(STATE_END_TARGET_SET,
|
||||
() -> mDeviceState.getRotationTouchHelper().
|
||||
onEndTargetCalculated(mGestureState.getEndTarget(),
|
||||
mActivityInterface));
|
||||
|
||||
notifyGestureStartedAsync();
|
||||
}
|
||||
|
||||
|
@ -423,7 +421,7 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
}
|
||||
|
||||
protected void notifyGestureAnimationStartToRecents() {
|
||||
mRecentsView.onGestureAnimationStart(mGestureState.getRunningTaskId());
|
||||
mRecentsView.onGestureAnimationStart(mGestureState.getRunningTask());
|
||||
}
|
||||
|
||||
private void launcherFrameDrawn() {
|
||||
|
@ -490,6 +488,20 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
recentsAttachedToAppWindow = mIsShelfPeeking || mIsLikelyToStartNewTask;
|
||||
}
|
||||
mAnimationFactory.setRecentsAttachedToAppWindow(recentsAttachedToAppWindow, animate);
|
||||
|
||||
// Reapply window transform throughout the attach animation, as the animation affects how
|
||||
// much the window is bound by overscroll (vs moving freely).
|
||||
if (animate) {
|
||||
ValueAnimator reapplyWindowTransformAnim = ValueAnimator.ofFloat(0, 1);
|
||||
reapplyWindowTransformAnim.addUpdateListener(anim -> {
|
||||
if (mRunningWindowAnim == null) {
|
||||
applyWindowTransform();
|
||||
}
|
||||
});
|
||||
reapplyWindowTransformAnim.setDuration(RECENTS_ATTACH_DURATION).start();
|
||||
} else {
|
||||
applyWindowTransform();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -527,11 +539,11 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
|
||||
/**
|
||||
* We don't want to change mLauncherTransitionController if mGestureState.getEndTarget() == HOME
|
||||
* (it has its own animation) or if we're already animating the current controller.
|
||||
* (it has its own animation).
|
||||
* @return Whether we can create the launcher controller or update its progress.
|
||||
*/
|
||||
private boolean canCreateNewOrUpdateExistingLauncherTransitionController() {
|
||||
return mGestureState.getEndTarget() != HOME && !mHasLauncherTransitionControllerStarted;
|
||||
return mGestureState.getEndTarget() != HOME;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -541,10 +553,9 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
return result;
|
||||
}
|
||||
|
||||
private void onAnimatorPlaybackControllerCreated(AnimatorPlaybackController anim) {
|
||||
private void onAnimatorPlaybackControllerCreated(AnimatorControllerWithResistance anim) {
|
||||
mLauncherTransitionController = anim;
|
||||
mLauncherTransitionController.dispatchSetInterpolator(t -> t * mDragLengthFactor);
|
||||
mLauncherTransitionController.dispatchOnStart();
|
||||
mLauncherTransitionController.getNormalController().dispatchOnStart();
|
||||
updateLauncherTransitionProgress();
|
||||
}
|
||||
|
||||
|
@ -581,10 +592,7 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
|| !canCreateNewOrUpdateExistingLauncherTransitionController()) {
|
||||
return;
|
||||
}
|
||||
// Normalize the progress to 0 to 1, as the animation controller will clamp it to that
|
||||
// anyway. The controller mimics the drag length factor by applying it to its interpolators.
|
||||
float progress = mCurrentShift.value / mDragLengthFactor;
|
||||
mLauncherTransitionController.setPlayFraction(progress);
|
||||
mLauncherTransitionController.setProgress(mCurrentShift.value, mDragLengthFactor);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1027,31 +1035,6 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
windowAnim.start();
|
||||
mRunningWindowAnim = RunningWindowAnim.wrap(windowAnim);
|
||||
}
|
||||
// Always play the entire launcher animation when going home, since it is separate from
|
||||
// the animation that has been controlled thus far.
|
||||
if (mGestureState.getEndTarget() == HOME) {
|
||||
start = 0;
|
||||
}
|
||||
|
||||
// We want to use the same interpolator as the window, but need to adjust it to
|
||||
// interpolate over the remaining progress (end - start).
|
||||
TimeInterpolator adjustedInterpolator = Interpolators.mapToProgress(
|
||||
interpolator, start, end);
|
||||
if (mLauncherTransitionController == null) {
|
||||
return;
|
||||
}
|
||||
if (start == end || duration <= 0) {
|
||||
mLauncherTransitionController.dispatchSetInterpolator(t -> end);
|
||||
} else {
|
||||
mLauncherTransitionController.dispatchSetInterpolator(adjustedInterpolator);
|
||||
}
|
||||
mLauncherTransitionController.getAnimationPlayer().setDuration(Math.max(0, duration));
|
||||
|
||||
if (UNSTABLE_SPRINGS.get()) {
|
||||
mLauncherTransitionController.dispatchOnStart();
|
||||
}
|
||||
mLauncherTransitionController.getAnimationPlayer().start();
|
||||
mHasLauncherTransitionControllerStarted = true;
|
||||
}
|
||||
|
||||
private void computeRecentsScrollIfInvisible() {
|
||||
|
@ -1172,10 +1155,6 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
private void cancelCurrentAnimation() {
|
||||
mCanceled = true;
|
||||
mCurrentShift.cancelAnimation();
|
||||
if (mLauncherTransitionController != null && mLauncherTransitionController
|
||||
.getAnimationPlayer().isStarted()) {
|
||||
mLauncherTransitionController.getAnimationPlayer().cancel();
|
||||
}
|
||||
}
|
||||
|
||||
private void invalidateHandler() {
|
||||
|
@ -1201,7 +1180,10 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
|
|||
private void endLauncherTransitionController() {
|
||||
setShelfState(ShelfAnimState.CANCEL, LINEAR, 0);
|
||||
if (mLauncherTransitionController != null) {
|
||||
mLauncherTransitionController.getAnimationPlayer().end();
|
||||
// End the animation, but stay at the same visual progress.
|
||||
mLauncherTransitionController.getNormalController().dispatchSetInterpolator(
|
||||
t -> Utilities.boundToRange(mCurrentShift.value, 0, 1));
|
||||
mLauncherTransitionController.getNormalController().getAnimationPlayer().end();
|
||||
mLauncherTransitionController = null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,11 +27,11 @@ import androidx.annotation.Nullable;
|
|||
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto;
|
||||
import com.android.quickstep.fallback.RecentsState;
|
||||
import com.android.quickstep.util.ActivityInitListener;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
|
||||
|
||||
|
@ -84,7 +84,7 @@ public final class FallbackActivityInterface extends
|
|||
/** 6 */
|
||||
@Override
|
||||
public AnimationFactory prepareRecentsUI(RecentsAnimationDeviceState deviceState,
|
||||
boolean activityVisible, Consumer<AnimatorPlaybackController> callback) {
|
||||
boolean activityVisible, Consumer<AnimatorControllerWithResistance> callback) {
|
||||
DefaultAnimationFactory factory = new DefaultAnimationFactory(callback);
|
||||
factory.initUI();
|
||||
return factory;
|
||||
|
@ -140,7 +140,7 @@ public final class FallbackActivityInterface extends
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onExitOverview(RecentsAnimationDeviceState deviceState, Runnable exitRunnable) {
|
||||
public void onExitOverview(RotationTouchHelper deviceState, Runnable exitRunnable) {
|
||||
// no-op, fake landscape not supported for 3P
|
||||
}
|
||||
|
||||
|
|
|
@ -15,14 +15,35 @@
|
|||
*/
|
||||
package com.android.quickstep;
|
||||
|
||||
import static android.content.Intent.EXTRA_COMPONENT_NAME;
|
||||
import static android.content.Intent.EXTRA_USER;
|
||||
|
||||
import static com.android.launcher3.GestureNavContract.EXTRA_GESTURE_CONTRACT;
|
||||
import static com.android.launcher3.GestureNavContract.EXTRA_ICON_POSITION;
|
||||
import static com.android.launcher3.GestureNavContract.EXTRA_ICON_SURFACE;
|
||||
import static com.android.launcher3.GestureNavContract.EXTRA_REMOTE_CALLBACK;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL;
|
||||
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.ActivityOptions;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.Messenger;
|
||||
import android.os.ParcelUuid;
|
||||
import android.os.UserHandle;
|
||||
import android.view.Surface;
|
||||
import android.view.SurfaceControl;
|
||||
import android.view.SurfaceControl.Transaction;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
|
@ -32,19 +53,33 @@ import com.android.launcher3.anim.AnimatorPlaybackController;
|
|||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.anim.SpringAnimationBuilder;
|
||||
import com.android.quickstep.fallback.FallbackRecentsView;
|
||||
import com.android.quickstep.util.RectFSpringAnim;
|
||||
import com.android.quickstep.util.TransformParams;
|
||||
import com.android.quickstep.util.TransformParams.BuilderProxy;
|
||||
import com.android.systemui.shared.recents.model.Task.TaskKey;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.InputConsumerController;
|
||||
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
|
||||
import com.android.systemui.shared.system.SyncRtSurfaceTransactionApplierCompat.SurfaceParams;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* Handles the navigation gestures when a 3rd party launcher is the default home activity.
|
||||
*/
|
||||
@TargetApi(Build.VERSION_CODES.R)
|
||||
public class FallbackSwipeHandler extends
|
||||
BaseSwipeUpHandlerV2<RecentsActivity, FallbackRecentsView> {
|
||||
|
||||
/**
|
||||
* Message used for receiving gesture nav contract information. We use a static messenger to
|
||||
* avoid leaking too make binders in case the receiving launcher does not handle the contract
|
||||
* properly.
|
||||
*/
|
||||
private static StaticMessageReceiver sMessageReceiver = null;
|
||||
|
||||
private FallbackHomeAnimationFactory mActiveAnimationFactory;
|
||||
private final boolean mRunningOverHome;
|
||||
|
||||
|
@ -89,7 +124,9 @@ public class FallbackSwipeHandler extends
|
|||
protected HomeAnimationFactory createHomeAnimationFactory(long duration) {
|
||||
mActiveAnimationFactory = new FallbackHomeAnimationFactory(duration);
|
||||
ActivityOptions options = ActivityOptions.makeCustomAnimation(mContext, 0, 0);
|
||||
mContext.startActivity(new Intent(mGestureState.getHomeIntent()), options.toBundle());
|
||||
Intent intent = new Intent(mGestureState.getHomeIntent());
|
||||
mActiveAnimationFactory.addGestureContract(intent);
|
||||
mContext.startActivity(intent, options.toBundle());
|
||||
return mActiveAnimationFactory;
|
||||
}
|
||||
|
||||
|
@ -130,17 +167,20 @@ public class FallbackSwipeHandler extends
|
|||
}
|
||||
|
||||
private class FallbackHomeAnimationFactory extends HomeAnimationFactory {
|
||||
|
||||
private final Rect mTempRect = new Rect();
|
||||
private final TransformParams mHomeAlphaParams = new TransformParams();
|
||||
private final AnimatedFloat mHomeAlpha;
|
||||
|
||||
private final AnimatedFloat mVerticalShiftForScale = new AnimatedFloat();
|
||||
|
||||
private final AnimatedFloat mRecentsAlpha = new AnimatedFloat();
|
||||
|
||||
private final RectF mTargetRect = new RectF();
|
||||
private SurfaceControl mSurfaceControl;
|
||||
|
||||
private final long mDuration;
|
||||
|
||||
private RectFSpringAnim mSpringAnim;
|
||||
FallbackHomeAnimationFactory(long duration) {
|
||||
super(null);
|
||||
mDuration = duration;
|
||||
|
||||
if (mRunningOverHome) {
|
||||
|
@ -162,6 +202,15 @@ public class FallbackSwipeHandler extends
|
|||
this::updateRecentsActivityTransformDuringHomeAnim);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RectF getWindowTargetRect() {
|
||||
if (mTargetRect.isEmpty()) {
|
||||
mTargetRect.set(super.getWindowTargetRect());
|
||||
}
|
||||
return mTargetRect;
|
||||
}
|
||||
|
||||
private void updateRecentsActivityTransformDuringHomeAnim(SurfaceParams.Builder builder,
|
||||
RemoteAnimationTargetCompat app, TransformParams params) {
|
||||
builder.withAlpha(mRecentsAlpha.value);
|
||||
|
@ -218,5 +267,87 @@ public class FallbackSwipeHandler extends
|
|||
.start();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAnimation(RectFSpringAnim anim) {
|
||||
mSpringAnim = anim;
|
||||
}
|
||||
|
||||
private void onMessageReceived(Message msg) {
|
||||
try {
|
||||
Bundle data = msg.getData();
|
||||
RectF position = data.getParcelable(EXTRA_ICON_POSITION);
|
||||
if (!position.isEmpty()) {
|
||||
mSurfaceControl = data.getParcelable(EXTRA_ICON_SURFACE);
|
||||
mTargetRect.set(position);
|
||||
if (mSpringAnim != null) {
|
||||
mSpringAnim.onTargetPositionChanged();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(RectF currentRect, float progress, float radius) {
|
||||
if (mSurfaceControl != null) {
|
||||
currentRect.roundOut(mTempRect);
|
||||
Transaction t = new Transaction();
|
||||
t.setGeometry(mSurfaceControl, null, mTempRect, Surface.ROTATION_0);
|
||||
t.apply();
|
||||
}
|
||||
}
|
||||
|
||||
private void addGestureContract(Intent intent) {
|
||||
if (mRunningOverHome || mGestureState.getRunningTask() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
TaskKey key = new TaskKey(mGestureState.getRunningTask());
|
||||
if (key.getComponent() != null) {
|
||||
if (sMessageReceiver == null) {
|
||||
sMessageReceiver = new StaticMessageReceiver();
|
||||
}
|
||||
|
||||
Bundle gestureNavContract = new Bundle();
|
||||
gestureNavContract.putParcelable(EXTRA_COMPONENT_NAME, key.getComponent());
|
||||
gestureNavContract.putParcelable(EXTRA_USER, UserHandle.of(key.userId));
|
||||
gestureNavContract.putParcelable(EXTRA_REMOTE_CALLBACK,
|
||||
sMessageReceiver.newCallback(this::onMessageReceived));
|
||||
intent.putExtra(EXTRA_GESTURE_CONTRACT, gestureNavContract);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class StaticMessageReceiver implements Handler.Callback {
|
||||
|
||||
private final Messenger mMessenger =
|
||||
new Messenger(new Handler(Looper.getMainLooper(), this));
|
||||
|
||||
private ParcelUuid mCurrentUID = new ParcelUuid(UUID.randomUUID());
|
||||
private WeakReference<Consumer<Message>> mCurrentCallback = new WeakReference<>(null);
|
||||
|
||||
public Message newCallback(Consumer<Message> callback) {
|
||||
mCurrentUID = new ParcelUuid(UUID.randomUUID());
|
||||
mCurrentCallback = new WeakReference<>(callback);
|
||||
|
||||
Message msg = Message.obtain();
|
||||
msg.replyTo = mMessenger;
|
||||
msg.obj = mCurrentUID;
|
||||
return msg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMessage(@NonNull Message message) {
|
||||
if (mCurrentUID.equals(message.obj)) {
|
||||
Consumer<Message> consumer = mCurrentCallback.get();
|
||||
if (consumer != null) {
|
||||
consumer.accept(message);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,7 +39,6 @@ import com.android.launcher3.LauncherInitListener;
|
|||
import com.android.launcher3.LauncherState;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.allapps.DiscoveryBounce;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.appprediction.PredictionUiStateManager;
|
||||
import com.android.launcher3.statehandlers.DepthController;
|
||||
|
@ -50,6 +49,7 @@ import com.android.launcher3.touch.PagedOrientationHandler;
|
|||
import com.android.launcher3.userevent.nano.LauncherLogProto;
|
||||
import com.android.quickstep.SysUINavigationMode.Mode;
|
||||
import com.android.quickstep.util.ActivityInitListener;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.util.LayoutUtils;
|
||||
import com.android.quickstep.util.ShelfPeekAnim.ShelfAnimState;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
|
@ -105,7 +105,7 @@ public final class LauncherActivityInterface extends
|
|||
// recents, we assume the first task is invisible, making translation off by one task.
|
||||
launcher.getStateManager().reapplyState();
|
||||
launcher.getRootView().setForceHideBackArrow(false);
|
||||
notifyRecentsOfOrientation(deviceState);
|
||||
notifyRecentsOfOrientation(deviceState.getRotationTouchHelper());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -119,8 +119,8 @@ public final class LauncherActivityInterface extends
|
|||
|
||||
@Override
|
||||
public AnimationFactory prepareRecentsUI(RecentsAnimationDeviceState deviceState,
|
||||
boolean activityVisible, Consumer<AnimatorPlaybackController> callback) {
|
||||
notifyRecentsOfOrientation(deviceState);
|
||||
boolean activityVisible, Consumer<AnimatorControllerWithResistance> callback) {
|
||||
notifyRecentsOfOrientation(deviceState.getRotationTouchHelper());
|
||||
DefaultAnimationFactory factory = new DefaultAnimationFactory(callback) {
|
||||
@Override
|
||||
public void setShelfState(ShelfAnimState shelfState, Interpolator interpolator,
|
||||
|
@ -228,7 +228,7 @@ public final class LauncherActivityInterface extends
|
|||
|
||||
|
||||
@Override
|
||||
public void onExitOverview(RecentsAnimationDeviceState deviceState, Runnable exitRunnable) {
|
||||
public void onExitOverview(RotationTouchHelper deviceState, Runnable exitRunnable) {
|
||||
final StateManager<LauncherState> stateManager = getCreatedActivity().getStateManager();
|
||||
stateManager.addStateListener(
|
||||
new StateManager.StateListener<LauncherState>() {
|
||||
|
@ -244,11 +244,11 @@ public final class LauncherActivityInterface extends
|
|||
});
|
||||
}
|
||||
|
||||
private void notifyRecentsOfOrientation(RecentsAnimationDeviceState deviceState) {
|
||||
private void notifyRecentsOfOrientation(RotationTouchHelper rotationTouchHelper) {
|
||||
// reset layout on swipe to home
|
||||
RecentsView recentsView = getCreatedActivity().getOverviewPanel();
|
||||
recentsView.setLayoutRotation(deviceState.getCurrentActiveRotation(),
|
||||
deviceState.getDisplayRotation());
|
||||
recentsView.setLayoutRotation(rotationTouchHelper.getCurrentActiveRotation(),
|
||||
rotationTouchHelper.getDisplayRotation());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
package com.android.quickstep;
|
||||
|
||||
import static com.android.launcher3.LauncherState.NORMAL;
|
||||
import static com.android.launcher3.views.FloatingIconView.SHAPE_PROGRESS_DURATION;
|
||||
|
||||
import android.animation.AnimatorSet;
|
||||
import android.content.Context;
|
||||
|
@ -28,6 +29,7 @@ import androidx.annotation.NonNull;
|
|||
import com.android.launcher3.BaseQuickstepLauncher;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.views.FloatingIconView;
|
||||
import com.android.quickstep.util.RectFSpringAnim;
|
||||
import com.android.quickstep.util.StaggeredWorkspaceAnim;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
import com.android.quickstep.views.TaskView;
|
||||
|
@ -72,36 +74,39 @@ public class LauncherSwipeHandlerV2 extends
|
|||
mActivity.getRootView().setForceHideBackArrow(true);
|
||||
mActivity.setHintUserWillBeActive();
|
||||
|
||||
homeAnimFactory = new HomeAnimationFactory(floatingIconView) {
|
||||
|
||||
@Override
|
||||
public RectF getWindowTargetRect() {
|
||||
if (canUseWorkspaceView) {
|
||||
if (canUseWorkspaceView) {
|
||||
// We want the window alpha to be 0 once this threshold is met, so that the
|
||||
// FolderIconView can be seen morphing into the icon shape.
|
||||
float windowAlphaThreshold = 1f - SHAPE_PROGRESS_DURATION;
|
||||
homeAnimFactory = new LauncherHomeAnimationFactory() {
|
||||
@Override
|
||||
public RectF getWindowTargetRect() {
|
||||
return iconLocation;
|
||||
} else {
|
||||
return super.getWindowTargetRect();
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public AnimatorPlaybackController createActivityAnimationToHome() {
|
||||
// Return an empty APC here since we have an non-user controlled animation
|
||||
// to home.
|
||||
long accuracy = 2 * Math.max(mDp.widthPx, mDp.heightPx);
|
||||
return mActivity.getStateManager().createAnimationToNewWorkspace(
|
||||
NORMAL, accuracy, 0 /* animComponents */);
|
||||
}
|
||||
@Override
|
||||
public void setAnimation(RectFSpringAnim anim) {
|
||||
anim.addAnimatorListener(floatingIconView);
|
||||
floatingIconView.setOnTargetChangeListener(anim::onTargetPositionChanged);
|
||||
floatingIconView.setFastFinishRunnable(anim::end);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playAtomicAnimation(float velocity) {
|
||||
new StaggeredWorkspaceAnim(mActivity, velocity,
|
||||
true /* animateOverviewScrim */).start();
|
||||
}
|
||||
};
|
||||
@Override
|
||||
public void update(RectF currentRect, float progress, float radius) {
|
||||
floatingIconView.update(currentRect, 1f, progress, windowAlphaThreshold,
|
||||
radius, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
floatingIconView.fastFinish();
|
||||
}
|
||||
};
|
||||
} else {
|
||||
homeAnimFactory = new LauncherHomeAnimationFactory();
|
||||
}
|
||||
} else {
|
||||
homeAnimFactory = new HomeAnimationFactory(null) {
|
||||
homeAnimFactory = new HomeAnimationFactory() {
|
||||
@Override
|
||||
public AnimatorPlaybackController createActivityAnimationToHome() {
|
||||
return AnimatorPlaybackController.wrap(new AnimatorSet(), duration);
|
||||
|
@ -118,4 +123,22 @@ public class LauncherSwipeHandlerV2 extends
|
|||
mRecentsAnimationController.finish(
|
||||
true /* toRecents */, callback, true /* sendUserLeaveHint */);
|
||||
}
|
||||
|
||||
private class LauncherHomeAnimationFactory extends HomeAnimationFactory {
|
||||
@NonNull
|
||||
@Override
|
||||
public AnimatorPlaybackController createActivityAnimationToHome() {
|
||||
// Return an empty APC here since we have an non-user controlled animation
|
||||
// to home.
|
||||
long accuracy = 2 * Math.max(mDp.widthPx, mDp.heightPx);
|
||||
return mActivity.getStateManager().createAnimationToNewWorkspace(
|
||||
NORMAL, accuracy, 0 /* animComponents */);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playAtomicAnimation(float velocity) {
|
||||
new StaggeredWorkspaceAnim(mActivity, velocity,
|
||||
true /* animateOverviewScrim */).start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright (C) 2020 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.quickstep;
|
||||
|
||||
import static com.android.launcher3.util.MainThreadInitializedObject.forOverride;
|
||||
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.util.MainThreadInitializedObject;
|
||||
import com.android.launcher3.util.ResourceBasedOverride;
|
||||
import com.android.systemui.plugins.OverscrollPlugin;
|
||||
|
||||
/**
|
||||
* Resource overrideable factory for forcing a local overscroll plugin.
|
||||
* Override {@link R.string#overscroll_plugin_factory_class} to set a different class.
|
||||
*/
|
||||
public class OverscrollPluginFactory implements ResourceBasedOverride {
|
||||
public static final MainThreadInitializedObject<OverscrollPluginFactory> INSTANCE = forOverride(
|
||||
OverscrollPluginFactory.class,
|
||||
R.string.overscroll_plugin_factory_class);
|
||||
|
||||
/**
|
||||
* Get the plugin that is defined locally in launcher, as opposed to a dynamic side loaded one.
|
||||
*/
|
||||
public OverscrollPlugin getLocalOverscrollPlugin() {
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -165,7 +165,7 @@ public class OverviewCommandHelper {
|
|||
mActivityInterface = mOverviewComponentObserver.getActivityInterface();
|
||||
mCreateTime = SystemClock.elapsedRealtime();
|
||||
mAnimationProvider = new AppToOverviewAnimationProvider<>(mActivityInterface,
|
||||
RecentsModel.getRunningTaskId(), mDeviceState);
|
||||
ActivityManagerWrapper.getInstance().getRunningTask(), mDeviceState);
|
||||
|
||||
// Preload the plan
|
||||
mRecentsModel.getTasks(null);
|
||||
|
|
|
@ -58,6 +58,12 @@ public class QuickstepTestInformationHandler extends TestInformationHandler {
|
|||
FeatureFlags.ENABLE_OVERVIEW_ACTIONS.get());
|
||||
return response;
|
||||
}
|
||||
|
||||
case TestProtocol.REQUEST_OVERVIEW_SHARE_ENABLED: {
|
||||
response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD,
|
||||
FeatureFlags.ENABLE_OVERVIEW_SHARE.get());
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
return super.call(method);
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
package com.android.quickstep;
|
||||
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL_1_5;
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL;
|
||||
import static com.android.launcher3.views.FloatingIconView.SHAPE_PROGRESS_DURATION;
|
||||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.content.Context;
|
||||
|
@ -25,10 +24,8 @@ import android.graphics.Matrix;
|
|||
import android.graphics.Matrix.ScaleToFit;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.view.animation.Interpolator;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.UiThread;
|
||||
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
|
@ -37,7 +34,7 @@ import com.android.launcher3.anim.AnimationSuccessListener;
|
|||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
import com.android.launcher3.views.FloatingIconView;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.util.RectFSpringAnim;
|
||||
import com.android.quickstep.util.TaskViewSimulator;
|
||||
import com.android.quickstep.util.TransformParams;
|
||||
|
@ -48,7 +45,6 @@ import com.android.systemui.shared.system.SyncRtSurfaceTransactionApplierCompat.
|
|||
public abstract class SwipeUpAnimationLogic {
|
||||
|
||||
protected static final Rect TEMP_RECT = new Rect();
|
||||
private static final Interpolator PULLBACK_INTERPOLATOR = DEACCEL;
|
||||
|
||||
protected DeviceProfile mDp;
|
||||
|
||||
|
@ -69,12 +65,8 @@ public abstract class SwipeUpAnimationLogic {
|
|||
protected int mTransitionDragLength;
|
||||
// How much further we can drag past recents, as a factor of mTransitionDragLength.
|
||||
protected float mDragLengthFactor = 1;
|
||||
// Start resisting when swiping past this factor of mTransitionDragLength.
|
||||
private float mDragLengthFactorStartPullback = 1f;
|
||||
// This is how far down we can scale down, where 0f is full screen and 1f is recents.
|
||||
private float mDragLengthFactorMaxPullback = 1f;
|
||||
|
||||
protected AnimatorPlaybackController mWindowTransitionController;
|
||||
protected AnimatorControllerWithResistance mWindowTransitionController;
|
||||
|
||||
public SwipeUpAnimationLogic(Context context, RecentsAnimationDeviceState deviceState,
|
||||
GestureState gestureState, TransformParams transformParams) {
|
||||
|
@ -85,7 +77,8 @@ public abstract class SwipeUpAnimationLogic {
|
|||
mTransformParams = transformParams;
|
||||
|
||||
mTaskViewSimulator.setLayoutRotation(
|
||||
mDeviceState.getCurrentActiveRotation(), mDeviceState.getDisplayRotation());
|
||||
mDeviceState.getRotationTouchHelper().getCurrentActiveRotation(),
|
||||
mDeviceState.getRotationTouchHelper().getDisplayRotation());
|
||||
}
|
||||
|
||||
protected void initTransitionEndpoints(DeviceProfile dp) {
|
||||
|
@ -99,19 +92,17 @@ public abstract class SwipeUpAnimationLogic {
|
|||
if (mDeviceState.isFullyGesturalNavMode()) {
|
||||
// We can drag all the way to the top of the screen.
|
||||
mDragLengthFactor = (float) dp.heightPx / mTransitionDragLength;
|
||||
|
||||
float startScale = mTaskViewSimulator.getFullScreenScale();
|
||||
// Start pulling back when RecentsView scale is 0.75f, and let it go down to 0.5f.
|
||||
mDragLengthFactorStartPullback = (0.75f - startScale) / (1 - startScale);
|
||||
mDragLengthFactorMaxPullback = (0.5f - startScale) / (1 - startScale);
|
||||
} else {
|
||||
mDragLengthFactor = 1;
|
||||
mDragLengthFactorStartPullback = mDragLengthFactorMaxPullback = 1;
|
||||
mDragLengthFactor = 1 + AnimatorControllerWithResistance.TWO_BUTTON_EXTRA_DRAG_FACTOR;
|
||||
}
|
||||
|
||||
PendingAnimation pa = new PendingAnimation(mTransitionDragLength * 2);
|
||||
mTaskViewSimulator.addAppToOverviewAnim(pa, t -> t * mDragLengthFactor);
|
||||
mWindowTransitionController = pa.createPlaybackController();
|
||||
mTaskViewSimulator.addAppToOverviewAnim(pa, LINEAR);
|
||||
AnimatorPlaybackController normalController = pa.createPlaybackController();
|
||||
mWindowTransitionController = AnimatorControllerWithResistance.createForRecents(
|
||||
normalController, mContext, mTaskViewSimulator.getOrientationState(),
|
||||
mDp, mTaskViewSimulator.recentsViewScale, AnimatedFloat.VALUE,
|
||||
mTaskViewSimulator.recentsViewSecondaryTranslation, AnimatedFloat.VALUE);
|
||||
}
|
||||
|
||||
@UiThread
|
||||
|
@ -124,13 +115,6 @@ public abstract class SwipeUpAnimationLogic {
|
|||
} else {
|
||||
float translation = Math.max(displacement, 0);
|
||||
shift = mTransitionDragLength == 0 ? 0 : translation / mTransitionDragLength;
|
||||
if (shift > mDragLengthFactorStartPullback) {
|
||||
float pullbackProgress = Utilities.getProgress(shift,
|
||||
mDragLengthFactorStartPullback, mDragLengthFactor);
|
||||
pullbackProgress = PULLBACK_INTERPOLATOR.getInterpolation(pullbackProgress);
|
||||
shift = mDragLengthFactorStartPullback + pullbackProgress
|
||||
* (mDragLengthFactorMaxPullback - mDragLengthFactorStartPullback);
|
||||
}
|
||||
}
|
||||
|
||||
mCurrentShift.updateValue(shift);
|
||||
|
@ -148,12 +132,6 @@ public abstract class SwipeUpAnimationLogic {
|
|||
|
||||
protected abstract class HomeAnimationFactory {
|
||||
|
||||
public FloatingIconView mIconView;
|
||||
|
||||
public HomeAnimationFactory(@Nullable FloatingIconView iconView) {
|
||||
mIconView = iconView;
|
||||
}
|
||||
|
||||
public @NonNull RectF getWindowTargetRect() {
|
||||
PagedOrientationHandler orientationHandler = getOrientationHandler();
|
||||
DeviceProfile dp = mDp;
|
||||
|
@ -174,6 +152,12 @@ public abstract class SwipeUpAnimationLogic {
|
|||
public void playAtomicAnimation(float velocity) {
|
||||
// No-op
|
||||
}
|
||||
|
||||
public void setAnimation(RectFSpringAnim anim) { }
|
||||
|
||||
public void update(RectF currentRect, float progress, float radius) { }
|
||||
|
||||
public void onCancel() { }
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -184,10 +168,8 @@ public abstract class SwipeUpAnimationLogic {
|
|||
protected RectFSpringAnim createWindowAnimationToHome(float startProgress,
|
||||
HomeAnimationFactory homeAnimationFactory) {
|
||||
final RectF targetRect = homeAnimationFactory.getWindowTargetRect();
|
||||
final FloatingIconView fiv = homeAnimationFactory.mIconView;
|
||||
final boolean isFloatingIconView = fiv != null;
|
||||
|
||||
mWindowTransitionController.setPlayFraction(startProgress / mDragLengthFactor);
|
||||
mCurrentShift.updateValue(startProgress);
|
||||
mTaskViewSimulator.apply(mTransformParams.setProgress(startProgress));
|
||||
RectF cropRectF = new RectF(mTaskViewSimulator.getCurrentCropRect());
|
||||
|
||||
|
@ -203,11 +185,7 @@ public abstract class SwipeUpAnimationLogic {
|
|||
windowToHomePositionMap.mapRect(startRect);
|
||||
|
||||
RectFSpringAnim anim = new RectFSpringAnim(startRect, targetRect, mContext);
|
||||
if (isFloatingIconView) {
|
||||
anim.addAnimatorListener(fiv);
|
||||
fiv.setOnTargetChangeListener(anim::onTargetPositionChanged);
|
||||
fiv.setFastFinishRunnable(anim::end);
|
||||
}
|
||||
homeAnimationFactory.setAnimation(anim);
|
||||
|
||||
SpringAnimationRunner runner = new SpringAnimationRunner(
|
||||
homeAnimationFactory, cropRectF, homeToWindowPositionMap);
|
||||
|
@ -242,32 +220,27 @@ public abstract class SwipeUpAnimationLogic {
|
|||
|
||||
final RectF mWindowCurrentRect = new RectF();
|
||||
final Matrix mHomeToWindowPositionMap;
|
||||
final HomeAnimationFactory mAnimationFactory;
|
||||
|
||||
final FloatingIconView mFIV;
|
||||
final AnimatorPlaybackController mHomeAnim;
|
||||
final RectF mCropRectF;
|
||||
|
||||
final float mStartRadius;
|
||||
final float mEndRadius;
|
||||
final float mWindowAlphaThreshold;
|
||||
|
||||
SpringAnimationRunner(HomeAnimationFactory factory, RectF cropRectF,
|
||||
Matrix homeToWindowPositionMap) {
|
||||
mAnimationFactory = factory;
|
||||
mHomeAnim = factory.createActivityAnimationToHome();
|
||||
mCropRectF = cropRectF;
|
||||
mHomeToWindowPositionMap = homeToWindowPositionMap;
|
||||
|
||||
cropRectF.roundOut(mCropRect);
|
||||
mFIV = factory.mIconView;
|
||||
|
||||
// End on a "round-enough" radius so that the shape reveal doesn't have to do too much
|
||||
// rounding at the end of the animation.
|
||||
mStartRadius = mTaskViewSimulator.getCurrentCornerRadius();
|
||||
mEndRadius = cropRectF.width() / 2f;
|
||||
|
||||
// We want the window alpha to be 0 once this threshold is met, so that the
|
||||
// FolderIconView can be seen morphing into the icon shape.
|
||||
mWindowAlphaThreshold = mFIV != null ? 1f - SHAPE_PROGRESS_DURATION : 1f;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -282,10 +255,7 @@ public abstract class SwipeUpAnimationLogic {
|
|||
.setCornerRadius(cornerRadius);
|
||||
|
||||
mTransformParams.applySurfaceParams(mTransformParams.createSurfaceParams(this));
|
||||
if (mFIV != null) {
|
||||
mFIV.update(currentRect, 1f, progress,
|
||||
mWindowAlphaThreshold, mMatrix.mapRadius(cornerRadius), false);
|
||||
}
|
||||
mAnimationFactory.update(currentRect, progress, mMatrix.mapRadius(cornerRadius));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -298,9 +268,7 @@ public abstract class SwipeUpAnimationLogic {
|
|||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
if (mFIV != null) {
|
||||
mFIV.fastFinish();
|
||||
}
|
||||
mAnimationFactory.onCancel();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -18,7 +18,7 @@ package com.android.quickstep;
|
|||
|
||||
import static android.view.Surface.ROTATION_0;
|
||||
|
||||
import static com.android.launcher3.util.MainThreadInitializedObject.forOverride;
|
||||
import static com.android.quickstep.views.OverviewActionsView.DISABLED_NO_THUMBNAIL;
|
||||
import static com.android.quickstep.views.OverviewActionsView.DISABLED_ROTATED;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
@ -38,13 +38,11 @@ import com.android.launcher3.R;
|
|||
import com.android.launcher3.model.data.ItemInfo;
|
||||
import com.android.launcher3.model.data.WorkspaceItemInfo;
|
||||
import com.android.launcher3.popup.SystemShortcut;
|
||||
import com.android.launcher3.util.MainThreadInitializedObject;
|
||||
import com.android.launcher3.util.ResourceBasedOverride;
|
||||
import com.android.quickstep.util.RecentsOrientedState;
|
||||
import com.android.quickstep.views.OverviewActionsView;
|
||||
import com.android.quickstep.views.TaskThumbnailView;
|
||||
import com.android.quickstep.views.TaskView;
|
||||
import com.android.systemui.plugins.OverscrollPlugin;
|
||||
import com.android.systemui.shared.recents.model.Task;
|
||||
import com.android.systemui.shared.recents.model.ThumbnailData;
|
||||
|
||||
|
@ -90,20 +88,22 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
|
|||
return shortcuts;
|
||||
}
|
||||
|
||||
public static final MainThreadInitializedObject<TaskOverlayFactory> INSTANCE =
|
||||
forOverride(TaskOverlayFactory.class, R.string.task_overlay_factory_class);
|
||||
|
||||
/**
|
||||
* @return a launcher-provided OverscrollPlugin if available, otherwise null
|
||||
*/
|
||||
public OverscrollPlugin getLocalOverscrollPlugin() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public TaskOverlay createOverlay(TaskThumbnailView thumbnailView) {
|
||||
return new TaskOverlay(thumbnailView);
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclasses can attach any system listeners in this method, must be paired with
|
||||
* {@link #removeListeners()}
|
||||
*/
|
||||
public void initListeners() { }
|
||||
|
||||
/**
|
||||
* Subclasses should remove any system listeners in this method, must be paired with
|
||||
* {@link #initListeners()}
|
||||
*/
|
||||
public void removeListeners() { }
|
||||
|
||||
/** Note that these will be shown in order from top to bottom, if available for the task. */
|
||||
private static final TaskShortcutFactory[] MENU_OPTIONS = new TaskShortcutFactory[]{
|
||||
TaskShortcutFactory.APP_INFO,
|
||||
|
@ -146,26 +146,29 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
|
|||
*/
|
||||
public void initOverlay(Task task, ThumbnailData thumbnail, Matrix matrix,
|
||||
boolean rotated) {
|
||||
final boolean isAllowedByPolicy = thumbnail.isRealSnapshot;
|
||||
getActionsView().updateDisabledFlags(DISABLED_NO_THUMBNAIL, thumbnail == null);
|
||||
|
||||
getActionsView().updateDisabledFlags(DISABLED_ROTATED, rotated);
|
||||
if (thumbnail != null) {
|
||||
getActionsView().updateDisabledFlags(DISABLED_ROTATED, rotated);
|
||||
final boolean isAllowedByPolicy = thumbnail.isRealSnapshot;
|
||||
|
||||
getActionsView().setCallbacks(new OverlayUICallbacks() {
|
||||
@Override
|
||||
public void onShare() {
|
||||
if (isAllowedByPolicy) {
|
||||
mImageApi.startShareActivity();
|
||||
} else {
|
||||
showBlockedByPolicyMessage();
|
||||
getActionsView().setCallbacks(new OverlayUICallbacks() {
|
||||
@Override
|
||||
public void onShare() {
|
||||
if (isAllowedByPolicy) {
|
||||
mImageApi.startShareActivity();
|
||||
} else {
|
||||
showBlockedByPolicyMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
@Override
|
||||
public void onScreenshot() {
|
||||
saveScreenshot(task);
|
||||
}
|
||||
});
|
||||
@SuppressLint("NewApi")
|
||||
@Override
|
||||
public void onScreenshot() {
|
||||
saveScreenshot(task);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -258,6 +258,7 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
|
||||
private static boolean sConnected = false;
|
||||
private static boolean sIsInitialized = false;
|
||||
private RotationTouchHelper mRotationTouchHelper;
|
||||
|
||||
public static boolean isConnected() {
|
||||
return sConnected;
|
||||
|
@ -298,6 +299,7 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
mDeviceState = new RecentsAnimationDeviceState(this);
|
||||
mDeviceState.addNavigationModeChangedCallback(this::onNavigationModeChanged);
|
||||
mDeviceState.runOnUserUnlocked(this::onUserUnlocked);
|
||||
mRotationTouchHelper = mDeviceState.getRotationTouchHelper();
|
||||
ProtoTracer.INSTANCE.get(this).add(this);
|
||||
|
||||
sConnected = true;
|
||||
|
@ -326,7 +328,7 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
mInputEventReceiver = mInputMonitorCompat.getInputReceiver(Looper.getMainLooper(),
|
||||
mMainChoreographer, this::onInputEvent);
|
||||
|
||||
mDeviceState.updateGestureTouchRegions();
|
||||
mRotationTouchHelper.updateGestureTouchRegions();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -470,9 +472,9 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
if (TestProtocol.sDebugTracing) {
|
||||
Log.d(TestProtocol.NO_SWIPE_TO_HOME, "TouchInteractionService.onInputEvent:DOWN");
|
||||
}
|
||||
mDeviceState.setOrientationTransformIfNeeded(event);
|
||||
mRotationTouchHelper.setOrientationTransformIfNeeded(event);
|
||||
|
||||
if (mDeviceState.isInSwipeUpTouchRegion(event)) {
|
||||
if (mRotationTouchHelper.isInSwipeUpTouchRegion(event)) {
|
||||
if (TestProtocol.sDebugTracing) {
|
||||
Log.d(TestProtocol.NO_SWIPE_TO_HOME,
|
||||
"TouchInteractionService.onInputEvent:isInSwipeUpTouchRegion");
|
||||
|
@ -509,7 +511,7 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
// Other events
|
||||
if (mUncheckedConsumer != InputConsumer.NO_OP) {
|
||||
// Only transform the event if we are handling it in a proper consumer
|
||||
mDeviceState.setOrientationTransformIfNeeded(event);
|
||||
mRotationTouchHelper.setOrientationTransformIfNeeded(event);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -547,7 +549,7 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
gestureState.updatePreviouslyAppearedTaskIds(
|
||||
previousGestureState.getPreviouslyAppearedTaskIds());
|
||||
} else {
|
||||
gestureState.updateRunningTask(TraceHelper.whitelistIpcs("getRunningTask.0",
|
||||
gestureState.updateRunningTask(TraceHelper.allowIpcs("getRunningTask.0",
|
||||
() -> mAM.getRunningTask(false /* filterOnlyVisibleRecents */)));
|
||||
}
|
||||
return gestureState;
|
||||
|
@ -595,9 +597,8 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
if (FeatureFlags.ENABLE_QUICK_CAPTURE_GESTURE.get()) {
|
||||
OverscrollPlugin plugin = null;
|
||||
if (FeatureFlags.FORCE_LOCAL_OVERSCROLL_PLUGIN.get()) {
|
||||
TaskOverlayFactory factory =
|
||||
TaskOverlayFactory.INSTANCE.get(getApplicationContext());
|
||||
plugin = factory.getLocalOverscrollPlugin(); // may be null
|
||||
plugin = OverscrollPluginFactory.INSTANCE.get(
|
||||
getApplicationContext()).getLocalOverscrollPlugin();
|
||||
}
|
||||
|
||||
// If not local plugin was forced, use the actual overscroll plugin if available.
|
||||
|
@ -660,7 +661,7 @@ public class TouchInteractionService extends Service implements PluginListener<O
|
|||
if (AssistantUtilities.isExcludedAssistant(gestureState.getRunningTask())) {
|
||||
// In the case where we are in the excluded assistant state, ignore it and treat the
|
||||
// running activity as the task behind the assistant
|
||||
gestureState.updateRunningTask(TraceHelper.whitelistIpcs("getRunningTask.assistant",
|
||||
gestureState.updateRunningTask(TraceHelper.allowIpcs("getRunningTask.assistant",
|
||||
() -> mAM.getRunningTask(true /* filterOnlyVisibleRecents */)));
|
||||
ComponentName homeComponent = mOverviewComponentObserver.getHomeIntent().getComponent();
|
||||
ComponentName runningComponent =
|
||||
|
|
|
@ -15,17 +15,19 @@
|
|||
*/
|
||||
package com.android.quickstep.fallback;
|
||||
|
||||
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
|
||||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_MODAL;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_SCALE;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_TRANSLATE_X;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_TRANSLATE_Y;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.PLAY_ATOMIC_OVERVIEW_PEEK;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.PLAY_ATOMIC_OVERVIEW_SCALE;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.SKIP_OVERVIEW;
|
||||
import static com.android.quickstep.views.RecentsView.ADJACENT_PAGE_OFFSET;
|
||||
import static com.android.quickstep.views.RecentsView.FULLSCREEN_PROGRESS;
|
||||
import static com.android.quickstep.views.RecentsView.RECENTS_SCALE_PROPERTY;
|
||||
import static com.android.quickstep.views.RecentsView.TASK_MODALNESS;
|
||||
import static com.android.quickstep.views.RecentsView.TASK_SECONDARY_TRANSLATION;
|
||||
|
||||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.anim.PropertySetter;
|
||||
|
@ -82,10 +84,12 @@ public class FallbackRecentsStateController implements StateHandler<RecentsState
|
|||
MultiValueAlpha.VALUE, buttonAlpha, LINEAR);
|
||||
|
||||
float[] scaleAndOffset = state.getOverviewScaleAndOffset(mActivity);
|
||||
setter.setFloat(mRecentsView, SCALE_PROPERTY, scaleAndOffset[0],
|
||||
setter.setFloat(mRecentsView, RECENTS_SCALE_PROPERTY, scaleAndOffset[0],
|
||||
config.getInterpolator(ANIM_OVERVIEW_SCALE, LINEAR));
|
||||
setter.setFloat(mRecentsView, ADJACENT_PAGE_OFFSET, scaleAndOffset[1],
|
||||
config.getInterpolator(ANIM_OVERVIEW_TRANSLATE_X, LINEAR));
|
||||
setter.setFloat(mRecentsView, TASK_SECONDARY_TRANSLATION, 0f,
|
||||
config.getInterpolator(ANIM_OVERVIEW_TRANSLATE_Y, LINEAR));
|
||||
|
||||
setter.setFloat(mRecentsView, TASK_MODALNESS, state.getOverviewModalness(),
|
||||
config.getInterpolator(ANIM_OVERVIEW_MODAL, LINEAR));
|
||||
|
|
|
@ -76,7 +76,7 @@ public class FallbackRecentsView extends RecentsView<RecentsActivity>
|
|||
*/
|
||||
public void onGestureAnimationStartOnHome(RunningTaskInfo homeTaskInfo) {
|
||||
mHomeTaskInfo = homeTaskInfo;
|
||||
onGestureAnimationStart(homeTaskInfo == null ? -1 : homeTaskInfo.taskId);
|
||||
onGestureAnimationStart(homeTaskInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -107,14 +107,15 @@ public class FallbackRecentsView extends RecentsView<RecentsActivity>
|
|||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldAddDummyTaskView(int runningTaskId) {
|
||||
if (mHomeTaskInfo != null && mHomeTaskInfo.taskId == runningTaskId
|
||||
protected boolean shouldAddDummyTaskView(RunningTaskInfo runningTaskInfo) {
|
||||
if (mHomeTaskInfo != null && runningTaskInfo != null &&
|
||||
mHomeTaskInfo.taskId == runningTaskInfo.taskId
|
||||
&& getTaskViewCount() == 0) {
|
||||
// Do not add a dummy task if we are running over home with empty recents, so that we
|
||||
// show the empty recents message instead of showing a dummy task and later removing it.
|
||||
return false;
|
||||
}
|
||||
return super.shouldAddDummyTaskView(runningTaskId);
|
||||
return super.shouldAddDummyTaskView(runningTaskInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -90,7 +90,6 @@ public class RecentsState implements BaseState<RecentsState> {
|
|||
return new float[] { NO_SCALE, NO_OFFSET };
|
||||
}
|
||||
|
||||
|
||||
private static class ModalState extends RecentsState {
|
||||
|
||||
public ModalState(int id, int flags) {
|
||||
|
|
|
@ -99,7 +99,8 @@ public class AccessibilityInputConsumer extends DelegateInputConsumer {
|
|||
case ACTION_POINTER_DOWN: {
|
||||
if (mState == STATE_INACTIVE) {
|
||||
int pointerIndex = ev.getActionIndex();
|
||||
if (mDeviceState.isInSwipeUpTouchRegion(ev, pointerIndex)
|
||||
if (mDeviceState.getRotationTouchHelper()
|
||||
.isInSwipeUpTouchRegion(ev, pointerIndex)
|
||||
&& mDelegate.allowInterceptByParent()) {
|
||||
setActive(ev);
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@ public class DeviceLockedInputConsumer implements InputConsumer,
|
|||
if (!mThresholdCrossed) {
|
||||
// Cancel interaction in case of multi-touch interaction
|
||||
int ptrIdx = ev.getActionIndex();
|
||||
if (!mDeviceState.isInSwipeUpTouchRegion(ev, ptrIdx)) {
|
||||
if (!mDeviceState.getRotationTouchHelper().isInSwipeUpTouchRegion(ev, ptrIdx)) {
|
||||
int action = ev.getAction();
|
||||
ev.setAction(ACTION_CANCEL);
|
||||
finishTouchTracking(ev);
|
||||
|
|
|
@ -59,6 +59,7 @@ import com.android.quickstep.GestureState;
|
|||
import com.android.quickstep.InputConsumer;
|
||||
import com.android.quickstep.RecentsAnimationCallbacks;
|
||||
import com.android.quickstep.RecentsAnimationDeviceState;
|
||||
import com.android.quickstep.RotationTouchHelper;
|
||||
import com.android.quickstep.TaskAnimationManager;
|
||||
import com.android.quickstep.util.ActiveGestureLog;
|
||||
import com.android.quickstep.util.CachedEventDispatcher;
|
||||
|
@ -86,6 +87,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
|
|||
private final NavBarPosition mNavBarPosition;
|
||||
private final TaskAnimationManager mTaskAnimationManager;
|
||||
private final GestureState mGestureState;
|
||||
private final RotationTouchHelper mRotationTouchHelper;
|
||||
private RecentsAnimationCallbacks mActiveCallbacks;
|
||||
private final CachedEventDispatcher mRecentsViewDispatcher = new CachedEventDispatcher();
|
||||
private final InputMonitorCompat mInputMonitorCompat;
|
||||
|
@ -163,6 +165,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
|
|||
|
||||
mPassedPilferInputSlop = mPassedWindowMoveSlop = continuingPreviousGesture;
|
||||
mDisableHorizontalSwipe = !mPassedPilferInputSlop && disableHorizontalSwipe;
|
||||
mRotationTouchHelper = mDeviceState.getRotationTouchHelper();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -230,7 +233,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
|
|||
if (!mPassedPilferInputSlop) {
|
||||
// Cancel interaction in case of multi-touch interaction
|
||||
int ptrIdx = ev.getActionIndex();
|
||||
if (!mDeviceState.isInSwipeUpTouchRegion(ev, ptrIdx)) {
|
||||
if (!mRotationTouchHelper.isInSwipeUpTouchRegion(ev, ptrIdx)) {
|
||||
forceCancelGesture(ev);
|
||||
}
|
||||
}
|
||||
|
@ -424,7 +427,7 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
|
|||
|
||||
@Override
|
||||
public void notifyOrientationSetup() {
|
||||
mDeviceState.onStartGesture();
|
||||
mRotationTouchHelper.onStartGesture();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,155 @@
|
|||
/*
|
||||
* Copyright (C) 2020 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.quickstep.util;
|
||||
|
||||
import static com.android.launcher3.LauncherState.NORMAL;
|
||||
import static com.android.launcher3.LauncherState.OVERVIEW;
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL;
|
||||
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
|
||||
import static com.android.launcher3.anim.Interpolators.FINAL_FRAME;
|
||||
import static com.android.launcher3.anim.Interpolators.INSTANT;
|
||||
import static com.android.launcher3.anim.Interpolators.clampToProgress;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_ALL_COMPONENTS;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_ACTIONS_FADE;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_FADE;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_SCALE;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_TRANSLATE_X;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_TRANSLATE_Y;
|
||||
import static com.android.launcher3.states.StateAnimationConfig.PLAY_ATOMIC_OVERVIEW_PEEK;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.util.Log;
|
||||
import android.view.animation.Interpolator;
|
||||
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.LauncherState;
|
||||
import com.android.launcher3.anim.AnimationSuccessListener;
|
||||
import com.android.launcher3.statemanager.StateManager;
|
||||
import com.android.launcher3.states.StateAnimationConfig;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
|
||||
/**
|
||||
* Runs an animation from overview to home. Currently, this animation is just a wrapper around the
|
||||
* normal state transition, in order to keep RecentsView at the same scale and translationY that
|
||||
* it started out at as it translates offscreen. It also scrolls RecentsView to page 0 and may play
|
||||
* a {@link StaggeredWorkspaceAnim} if we're starting from an upward fling.
|
||||
*/
|
||||
public class OverviewToHomeAnim {
|
||||
|
||||
private static final String TAG = "OverviewToHomeAnim";
|
||||
|
||||
// Constants to specify how to scroll RecentsView to the default page if it's not already there.
|
||||
private static final int DEFAULT_PAGE = 0;
|
||||
private static final int PER_PAGE_SCROLL_DURATION = 150;
|
||||
private static final int MAX_PAGE_SCROLL_DURATION = 750;
|
||||
|
||||
private final Launcher mLauncher;
|
||||
private final Runnable mOnReachedHome;
|
||||
|
||||
// Only run mOnReachedHome when both of these are true.
|
||||
private boolean mIsHomeStaggeredAnimFinished;
|
||||
private boolean mIsOverviewHidden;
|
||||
|
||||
public OverviewToHomeAnim(Launcher launcher, Runnable onReachedHome) {
|
||||
mLauncher = launcher;
|
||||
mOnReachedHome = onReachedHome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the animation. If velocity < 0 (i.e. upwards), also plays a
|
||||
* {@link StaggeredWorkspaceAnim}.
|
||||
*/
|
||||
public void animateWithVelocity(float velocity) {
|
||||
StateManager<LauncherState> stateManager = mLauncher.getStateManager();
|
||||
LauncherState startState = stateManager.getState();
|
||||
if (startState != OVERVIEW) {
|
||||
Log.e(TAG, "animateFromOverviewToHome: unexpected start state " + startState);
|
||||
}
|
||||
AnimatorSet anim = new AnimatorSet();
|
||||
|
||||
boolean playStaggeredWorkspaceAnim = velocity < 0;
|
||||
if (playStaggeredWorkspaceAnim) {
|
||||
StaggeredWorkspaceAnim staggeredWorkspaceAnim = new StaggeredWorkspaceAnim(
|
||||
mLauncher, velocity, false /* animateOverviewScrim */);
|
||||
staggeredWorkspaceAnim.addAnimatorListener(new AnimationSuccessListener() {
|
||||
@Override
|
||||
public void onAnimationSuccess(Animator animator) {
|
||||
mIsHomeStaggeredAnimFinished = true;
|
||||
maybeOverviewToHomeAnimComplete();
|
||||
}
|
||||
});
|
||||
anim.play(staggeredWorkspaceAnim.getAnimators());
|
||||
} else {
|
||||
mIsHomeStaggeredAnimFinished = true;
|
||||
}
|
||||
|
||||
RecentsView recentsView = mLauncher.getOverviewPanel();
|
||||
int numPagesToScroll = recentsView.getNextPage() - DEFAULT_PAGE;
|
||||
int scrollDuration = Math.min(MAX_PAGE_SCROLL_DURATION,
|
||||
numPagesToScroll * PER_PAGE_SCROLL_DURATION);
|
||||
int duration = Math.max(scrollDuration, startState.getTransitionDuration(mLauncher));
|
||||
|
||||
StateAnimationConfig config = new UseFirstInterpolatorStateAnimConfig();
|
||||
config.duration = duration;
|
||||
config.animFlags = playStaggeredWorkspaceAnim
|
||||
// StaggeredWorkspaceAnim doesn't animate overview, so we handle it here.
|
||||
? PLAY_ATOMIC_OVERVIEW_PEEK
|
||||
: ANIM_ALL_COMPONENTS;
|
||||
boolean isLayoutNaturalToLauncher = recentsView.getPagedOrientationHandler()
|
||||
.isLayoutNaturalToLauncher();
|
||||
config.setInterpolator(ANIM_OVERVIEW_TRANSLATE_X, isLayoutNaturalToLauncher
|
||||
? clampToProgress(FAST_OUT_SLOW_IN, 0, 0.75f) : FINAL_FRAME);
|
||||
config.setInterpolator(ANIM_OVERVIEW_TRANSLATE_Y, FINAL_FRAME);
|
||||
config.setInterpolator(ANIM_OVERVIEW_SCALE, FINAL_FRAME);
|
||||
config.setInterpolator(ANIM_OVERVIEW_ACTIONS_FADE, INSTANT);
|
||||
if (!isLayoutNaturalToLauncher) {
|
||||
config.setInterpolator(ANIM_OVERVIEW_FADE, DEACCEL);
|
||||
}
|
||||
AnimatorSet stateAnim = stateManager.createAtomicAnimation(
|
||||
startState, NORMAL, config);
|
||||
stateAnim.addListener(new AnimationSuccessListener() {
|
||||
@Override
|
||||
public void onAnimationSuccess(Animator animator) {
|
||||
mIsOverviewHidden = true;
|
||||
maybeOverviewToHomeAnimComplete();
|
||||
}
|
||||
});
|
||||
anim.play(stateAnim);
|
||||
stateManager.setCurrentAnimation(anim, NORMAL);
|
||||
anim.start();
|
||||
recentsView.snapToPage(DEFAULT_PAGE, duration);
|
||||
}
|
||||
|
||||
private void maybeOverviewToHomeAnimComplete() {
|
||||
if (mIsHomeStaggeredAnimFinished && mIsOverviewHidden) {
|
||||
mOnReachedHome.run();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper around StateAnimationConfig that doesn't allow interpolators to be set if they are
|
||||
* already set. This ensures they aren't overridden before being used.
|
||||
*/
|
||||
private static class UseFirstInterpolatorStateAnimConfig extends StateAnimationConfig {
|
||||
@Override
|
||||
public void setInterpolator(int animId, Interpolator interpolator) {
|
||||
if (mInterpolators[animId] == null || interpolator == null) {
|
||||
super.setInterpolator(animId, interpolator);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -205,13 +205,15 @@ public class StaggeredWorkspaceAnim {
|
|||
ResourceProvider rp = DynamicResource.provider(v.getContext());
|
||||
float stiffness = rp.getFloat(R.dimen.staggered_stiffness);
|
||||
float damping = rp.getFloat(R.dimen.staggered_damping_ratio);
|
||||
float endTransY = 0;
|
||||
float springVelocity = Math.abs(mVelocity) * Math.signum(endTransY - mSpringTransY);
|
||||
ValueAnimator springTransY = new SpringAnimationBuilder(v.getContext())
|
||||
.setStiffness(stiffness)
|
||||
.setDampingRatio(damping)
|
||||
.setMinimumVisibleChange(1f)
|
||||
.setStartValue(mSpringTransY)
|
||||
.setEndValue(0)
|
||||
.setStartVelocity(mVelocity)
|
||||
.setEndValue(endTransY)
|
||||
.setStartVelocity(springVelocity)
|
||||
.build(v, VIEW_TRANSLATE_Y);
|
||||
springTransY.setStartDelay(startDelay);
|
||||
springTransY.addListener(new AnimatorListenerAdapter() {
|
||||
|
|
|
@ -31,7 +31,6 @@ import android.graphics.RectF;
|
|||
import android.util.IntProperty;
|
||||
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
|
@ -91,8 +90,8 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
|||
// RecentsView properties
|
||||
public final AnimatedFloat recentsViewScale = new AnimatedFloat();
|
||||
public final AnimatedFloat fullScreenProgress = new AnimatedFloat();
|
||||
public final AnimatedFloat recentsViewSecondaryTranslation = new AnimatedFloat();
|
||||
private final ScrollState mScrollState = new ScrollState();
|
||||
private final int mPageSpacing;
|
||||
|
||||
// Cached calculations
|
||||
private boolean mLayoutValid = false;
|
||||
|
@ -106,7 +105,6 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
|||
mOrientationState.setGestureActive(true);
|
||||
|
||||
mCurrentFullscreenParams = new FullscreenDrawParams(context);
|
||||
mPageSpacing = context.getResources().getDimensionPixelSize(R.dimen.recents_page_spacing);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -129,8 +127,8 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
|||
/**
|
||||
* @see com.android.quickstep.views.RecentsView#onConfigurationChanged(Configuration)
|
||||
*/
|
||||
public void setRecentsConfiguration(Configuration configuration) {
|
||||
mOrientationState.setActivityConfiguration(configuration);
|
||||
public void setRecentsRotation(int recentsRotation) {
|
||||
mOrientationState.setRecentsRotation(recentsRotation);
|
||||
mLayoutValid = false;
|
||||
}
|
||||
|
||||
|
@ -252,7 +250,7 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
|||
int start = mOrientationState.getOrientationHandler()
|
||||
.getPrimaryValue(mTaskRect.left, mTaskRect.top);
|
||||
mScrollState.screenCenter = start + mScrollState.scroll + mScrollState.halfPageSize;
|
||||
mScrollState.updateInterpolation(start, mPageSpacing);
|
||||
mScrollState.updateInterpolation(start);
|
||||
mCurveScale = TaskView.getCurveScaleForInterpolation(mScrollState.linearInterpolation);
|
||||
}
|
||||
|
||||
|
@ -276,8 +274,10 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
|||
mOrientationState.getOrientationHandler().set(
|
||||
mMatrix, MATRIX_POST_TRANSLATE, mScrollState.scroll);
|
||||
|
||||
// Apply recensView matrix
|
||||
// Apply RecentsView matrix
|
||||
mMatrix.postScale(recentsViewScale.value, recentsViewScale.value, mPivot.x, mPivot.y);
|
||||
mOrientationState.getOrientationHandler().setSecondary(mMatrix, MATRIX_POST_TRANSLATE,
|
||||
recentsViewSecondaryTranslation.value);
|
||||
applyWindowToHomeRotation(mMatrix);
|
||||
|
||||
// Crop rect is the inverse of thumbnail matrix
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
package com.android.quickstep.views;
|
||||
|
||||
import static com.android.launcher3.LauncherState.ALL_APPS;
|
||||
import static com.android.launcher3.LauncherState.NORMAL;
|
||||
import static com.android.launcher3.anim.Interpolators.ACCEL;
|
||||
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
|
||||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
|
@ -42,8 +43,10 @@ import com.android.launcher3.DeviceProfile;
|
|||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.allapps.AllAppsTransitionController;
|
||||
import com.android.launcher3.anim.AnimatorPlaybackController;
|
||||
import com.android.launcher3.anim.Interpolators;
|
||||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.dragndrop.DragLayer;
|
||||
import com.android.launcher3.states.StateAnimationConfig;
|
||||
import com.android.launcher3.util.Themes;
|
||||
|
@ -51,6 +54,7 @@ import com.android.quickstep.util.MultiValueUpdateListener;
|
|||
|
||||
/**
|
||||
* View used to educate the user on how to access All Apps when in No Nav Button navigation mode.
|
||||
* Consumes all touches until after the animation is completed and the view is removed.
|
||||
*/
|
||||
public class AllAppsEduView extends AbstractFloatingView {
|
||||
|
||||
|
@ -110,9 +114,19 @@ public class AllAppsEduView extends AbstractFloatingView {
|
|||
return (type & TYPE_ALL_APPS_EDU) != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBackPressed() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInterceptEventsInSystemGestureRegion() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onControllerInterceptTouchEvent(MotionEvent ev) {
|
||||
return mAnimation != null && mAnimation.isRunning();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void playAnimation() {
|
||||
|
@ -139,7 +153,12 @@ public class AllAppsEduView extends AbstractFloatingView {
|
|||
config.userControlled = false;
|
||||
AnimatorPlaybackController stateAnimationController =
|
||||
mLauncher.getStateManager().createAnimationToNewWorkspace(ALL_APPS, config);
|
||||
float maxAllAppsProgress = 0.15f;
|
||||
float maxAllAppsProgress = mLauncher.getDeviceProfile().isLandscape ? 0.35f : 0.15f;
|
||||
|
||||
AllAppsTransitionController allAppsController = mLauncher.getAllAppsController();
|
||||
PendingAnimation allAppsAlpha = new PendingAnimation(config.duration);
|
||||
allAppsController.setAlphas(ALL_APPS, config, allAppsAlpha);
|
||||
mAnimation.play(allAppsAlpha.buildAnim());
|
||||
|
||||
ValueAnimator intro = ValueAnimator.ofFloat(0, 1f);
|
||||
intro.setInterpolator(LINEAR);
|
||||
|
@ -191,7 +210,8 @@ public class AllAppsEduView extends AbstractFloatingView {
|
|||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
mAnimation = null;
|
||||
stateAnimationController.dispatchOnCancel();
|
||||
// Handles cancelling the animation used to hint towards All Apps.
|
||||
mLauncher.getStateManager().goToState(NORMAL, false);
|
||||
handleClose(false);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -51,6 +51,7 @@ import com.android.launcher3.util.TraceHelper;
|
|||
import com.android.launcher3.views.ScrimView;
|
||||
import com.android.quickstep.LauncherActivityInterface;
|
||||
import com.android.quickstep.SysUINavigationMode;
|
||||
import com.android.quickstep.util.OverviewToHomeAnim;
|
||||
import com.android.quickstep.util.TransformParams;
|
||||
import com.android.systemui.plugins.PluginListener;
|
||||
import com.android.systemui.plugins.RecentsExtraCard;
|
||||
|
@ -105,12 +106,14 @@ public class LauncherRecentsView extends RecentsView<BaseQuickstepLauncher>
|
|||
|
||||
@Override
|
||||
public void startHome() {
|
||||
Runnable onReachedHome = () -> mActivity.getStateManager().goToState(NORMAL, false);
|
||||
OverviewToHomeAnim overviewToHomeAnim = new OverviewToHomeAnim(mActivity, onReachedHome);
|
||||
if (ENABLE_QUICKSTEP_LIVE_TILE.get()) {
|
||||
switchToScreenshot(null,
|
||||
() -> finishRecentsAnimation(true /* toRecents */,
|
||||
() -> mActivity.getStateManager().goToState(NORMAL)));
|
||||
() -> overviewToHomeAnim.animateWithVelocity(0)));
|
||||
} else {
|
||||
mActivity.getStateManager().goToState(NORMAL);
|
||||
overviewToHomeAnim.animateWithVelocity(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -189,7 +192,7 @@ public class LauncherRecentsView extends RecentsView<BaseQuickstepLauncher>
|
|||
|
||||
@Override
|
||||
public boolean shouldUseMultiWindowTaskSizeStrategy() {
|
||||
return TraceHelper.whitelistIpcs("isInMultiWindowMode", mActivity::isInMultiWindowMode);
|
||||
return TraceHelper.allowIpcs("isInMultiWindowMode", mActivity::isInMultiWindowMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -70,12 +70,14 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
|
|||
|
||||
@IntDef(flag = true, value = {
|
||||
DISABLED_SCROLLING,
|
||||
DISABLED_ROTATED})
|
||||
DISABLED_ROTATED,
|
||||
DISABLED_NO_THUMBNAIL})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ActionsDisabledFlags { }
|
||||
|
||||
public static final int DISABLED_SCROLLING = 1 << 0;
|
||||
public static final int DISABLED_ROTATED = 1 << 1;
|
||||
public static final int DISABLED_NO_THUMBNAIL = 1 << 2;
|
||||
|
||||
private static final int INDEX_CONTENT_ALPHA = 0;
|
||||
private static final int INDEX_VISIBILITY_ALPHA = 1;
|
||||
|
@ -103,6 +105,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
|
|||
public OverviewActionsView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr, 0);
|
||||
mMultiValueAlpha = new MultiValueAlpha(this, 4);
|
||||
mMultiValueAlpha.setUpdateVisibility(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -166,7 +169,6 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
|
|||
}
|
||||
boolean isHidden = mHiddenFlags != 0;
|
||||
mMultiValueAlpha.getProperty(INDEX_HIDDEN_FLAGS_ALPHA).setValue(isHidden ? 0 : 1);
|
||||
setVisibility(isHidden ? INVISIBLE : VISIBLE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -22,9 +22,9 @@ import static android.view.View.MeasureSpec.makeMeasureSpec;
|
|||
|
||||
import static com.android.launcher3.BaseActivity.STATE_HANDLER_INVISIBILITY_FLAGS;
|
||||
import static com.android.launcher3.InvariantDeviceProfile.CHANGE_FLAG_ICON_PARAMS;
|
||||
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
|
||||
import static com.android.launcher3.LauncherAnimUtils.VIEW_ALPHA;
|
||||
import static com.android.launcher3.LauncherState.BACKGROUND_APP;
|
||||
import static com.android.launcher3.LauncherState.OVERVIEW_MODAL_TASK;
|
||||
import static com.android.launcher3.Utilities.EDGE_NAV_BAR;
|
||||
import static com.android.launcher3.Utilities.mapToRange;
|
||||
import static com.android.launcher3.Utilities.squaredHypot;
|
||||
|
@ -55,15 +55,14 @@ import android.animation.LayoutTransition.TransitionListener;
|
|||
import android.animation.ObjectAnimator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.ComponentName;
|
||||
import android.app.ActivityManager.RunningTaskInfo;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.PointF;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
|
@ -94,6 +93,7 @@ import com.android.launcher3.BaseActivity;
|
|||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.Insettable;
|
||||
import com.android.launcher3.InvariantDeviceProfile;
|
||||
import com.android.launcher3.LauncherState;
|
||||
import com.android.launcher3.PagedView;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
|
@ -116,6 +116,7 @@ import com.android.launcher3.util.ComponentKey;
|
|||
import com.android.launcher3.util.DynamicResource;
|
||||
import com.android.launcher3.util.MultiValueAlpha;
|
||||
import com.android.launcher3.util.OverScroller;
|
||||
import com.android.launcher3.util.ResourceBasedOverride.Overrides;
|
||||
import com.android.launcher3.util.Themes;
|
||||
import com.android.launcher3.util.ViewPool;
|
||||
import com.android.quickstep.BaseActivityInterface;
|
||||
|
@ -124,6 +125,7 @@ import com.android.quickstep.RecentsAnimationTargets;
|
|||
import com.android.quickstep.RecentsModel;
|
||||
import com.android.quickstep.RecentsModel.TaskVisualsChangeListener;
|
||||
import com.android.quickstep.SystemUiProxy;
|
||||
import com.android.quickstep.TaskOverlayFactory;
|
||||
import com.android.quickstep.TaskThumbnailCache;
|
||||
import com.android.quickstep.TaskUtils;
|
||||
import com.android.quickstep.ViewUtils;
|
||||
|
@ -135,6 +137,7 @@ import com.android.quickstep.util.TransformParams;
|
|||
import com.android.systemui.plugins.ResourceProvider;
|
||||
import com.android.systemui.shared.recents.IPinnedStackAnimationListener;
|
||||
import com.android.systemui.shared.recents.model.Task;
|
||||
import com.android.systemui.shared.recents.model.Task.TaskKey;
|
||||
import com.android.systemui.shared.recents.model.ThumbnailData;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.LauncherEventUtil;
|
||||
|
@ -147,7 +150,7 @@ import java.util.function.Consumer;
|
|||
/**
|
||||
* A list of recent tasks.
|
||||
*/
|
||||
@TargetApi(Build.VERSION_CODES.P)
|
||||
@TargetApi(Build.VERSION_CODES.R)
|
||||
public abstract class RecentsView<T extends StatefulActivity> extends PagedView implements
|
||||
Insettable, TaskThumbnailCache.HighResLoadingState.HighResLoadingStateChangedCallback,
|
||||
InvariantDeviceProfile.OnIDPChangeListener, TaskVisualsChangeListener,
|
||||
|
@ -210,6 +213,37 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
}
|
||||
};
|
||||
|
||||
public static final FloatProperty<RecentsView> TASK_SECONDARY_TRANSLATION =
|
||||
new FloatProperty<RecentsView>("taskSecondaryTranslation") {
|
||||
@Override
|
||||
public void setValue(RecentsView recentsView, float v) {
|
||||
recentsView.setTaskViewsSecondaryTranslation(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Float get(RecentsView recentsView) {
|
||||
return recentsView.mTaskViewsSecondaryTranslation;
|
||||
}
|
||||
};
|
||||
|
||||
/** Same as normal SCALE_PROPERTY, but also updates page offsets that depend on this scale. */
|
||||
public static final FloatProperty<RecentsView> RECENTS_SCALE_PROPERTY =
|
||||
new FloatProperty<RecentsView>("recentsScale") {
|
||||
@Override
|
||||
public void setValue(RecentsView view, float scale) {
|
||||
view.setScaleX(scale);
|
||||
view.setScaleY(scale);
|
||||
view.mLastComputedTaskPushOutDistance = null;
|
||||
view.updatePageOffsets();
|
||||
view.setTaskViewsSecondaryTranslation(view.mTaskViewsSecondaryTranslation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Float get(RecentsView view) {
|
||||
return view.getScaleX();
|
||||
}
|
||||
};
|
||||
|
||||
protected RecentsOrientedState mOrientationState;
|
||||
protected final BaseActivityInterface mSizeStrategy;
|
||||
protected RecentsAnimationController mRecentsAnimationController;
|
||||
|
@ -217,8 +251,12 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
protected SurfaceTransactionApplier mSyncTransactionApplier;
|
||||
protected int mTaskWidth;
|
||||
protected int mTaskHeight;
|
||||
protected final Rect mLastComputedTaskSize = new Rect();
|
||||
// How much a task that is directly offscreen will be pushed out due to RecentsView scale/pivot.
|
||||
protected Float mLastComputedTaskPushOutDistance = null;
|
||||
protected boolean mEnableDrawingLiveTile = false;
|
||||
protected final Rect mTempRect = new Rect();
|
||||
protected final RectF mTempRectF = new RectF();
|
||||
private final PointF mTempPointF = new PointF();
|
||||
|
||||
private static final int DISMISS_TASK_DURATION = 300;
|
||||
|
@ -242,12 +280,15 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
|
||||
private final ViewPool<TaskView> mTaskViewPool;
|
||||
|
||||
private final TaskOverlayFactory mTaskOverlayFactory;
|
||||
|
||||
private boolean mDwbToastShown;
|
||||
protected boolean mDisallowScrollToClearAll;
|
||||
private boolean mOverlayEnabled;
|
||||
protected boolean mFreezeViewVisibility;
|
||||
|
||||
private float mAdjacentPageOffset = 0;
|
||||
private float mTaskViewsSecondaryTranslation = 0;
|
||||
|
||||
/**
|
||||
* TODO: Call reloadIdNeeded in onTaskStackChanged.
|
||||
|
@ -377,7 +418,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
mOrientationState.setMultiWindowMode(inMultiWindowMode);
|
||||
setLayoutRotation(mOrientationState.getTouchRotation(),
|
||||
mOrientationState.getDisplayRotation());
|
||||
rotateAllChildTasks();
|
||||
updateChildTaskOrientations();
|
||||
}
|
||||
if (!inMultiWindowMode && mOverviewStateEnabled) {
|
||||
// TODO: Re-enable layout transitions for addition of the unpinned task
|
||||
|
@ -394,7 +435,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
mActivity = BaseActivity.fromContext(context);
|
||||
mOrientationState = new RecentsOrientedState(
|
||||
context, mSizeStrategy, this::animateRecentsRotationInPlace);
|
||||
mOrientationState.setActivityConfiguration(context.getResources().getConfiguration());
|
||||
mOrientationState.setRecentsRotation(mActivity.getDisplay().getRotation());
|
||||
|
||||
mFastFlingVelocity = getResources()
|
||||
.getDimensionPixelSize(R.dimen.recents_fast_fling_velocity);
|
||||
|
@ -428,6 +469,11 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
updateEmptyMessage();
|
||||
mOrientationHandler = mOrientationState.getOrientationHandler();
|
||||
|
||||
mTaskOverlayFactory = Overrides.getObject(
|
||||
TaskOverlayFactory.class,
|
||||
context.getApplicationContext(),
|
||||
R.string.task_overlay_factory_class);
|
||||
|
||||
// Initialize quickstep specific cache params here, as this is constructed only once
|
||||
mActivity.getViewCache().setCacheSize(R.layout.digital_wellbeing_toast, 5);
|
||||
}
|
||||
|
@ -521,6 +567,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
mIPinnedStackAnimationListener);
|
||||
mOrientationState.initListeners();
|
||||
SplitScreenBounds.INSTANCE.addOnChangeListener(this);
|
||||
mTaskOverlayFactory.initListeners();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -537,6 +584,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
SplitScreenBounds.INSTANCE.removeOnChangeListener(this);
|
||||
mIPinnedStackAnimationListener.setActivity(null);
|
||||
mOrientationState.destroyListeners();
|
||||
mTaskOverlayFactory.removeListeners();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -649,6 +697,13 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
@Override
|
||||
public boolean onTouchEvent(MotionEvent ev) {
|
||||
super.onTouchEvent(ev);
|
||||
|
||||
TaskView taskView = getCurrentPageTaskView();
|
||||
if (taskView != null && taskView.offerTouchToChildren(ev)) {
|
||||
// Keep consuming events to pass to delegate
|
||||
return true;
|
||||
}
|
||||
|
||||
final int x = (int) ev.getX();
|
||||
final int y = (int) ev.getY();
|
||||
switch (ev.getAction()) {
|
||||
|
@ -865,6 +920,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
public void getTaskSize(Rect outRect) {
|
||||
mSizeStrategy.calculateTaskSize(mActivity, mActivity.getDeviceProfile(), outRect,
|
||||
mOrientationHandler);
|
||||
mLastComputedTaskSize.set(outRect);
|
||||
}
|
||||
|
||||
/** Gets the task size for modal state. */
|
||||
|
@ -906,8 +962,8 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
final int pageCount = getPageCount();
|
||||
for (int i = 0; i < pageCount; i++) {
|
||||
View page = getPageAt(i);
|
||||
mScrollState.updateInterpolation(mOrientationHandler.getChildStartWithTranslation(page),
|
||||
mPageSpacing);
|
||||
mScrollState.updateInterpolation(
|
||||
mOrientationHandler.getChildStartWithTranslation(page));
|
||||
((PageCallbacks) page).onPageScroll(mScrollState);
|
||||
}
|
||||
}
|
||||
|
@ -1041,13 +1097,13 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
/**
|
||||
* Called when a gesture from an app is starting.
|
||||
*/
|
||||
public void onGestureAnimationStart(int runningTaskId) {
|
||||
public void onGestureAnimationStart(RunningTaskInfo runningTaskInfo) {
|
||||
// This needs to be called before the other states are set since it can create the task view
|
||||
if (mOrientationState.setGestureActive(true)) {
|
||||
updateOrientationHandler();
|
||||
}
|
||||
|
||||
showCurrentTask(runningTaskId);
|
||||
showCurrentTask(runningTaskInfo);
|
||||
setEnableFreeScroll(false);
|
||||
setEnableDrawingLiveTile(false);
|
||||
setRunningTaskHidden(true);
|
||||
|
@ -1078,7 +1134,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
pa.addListener(AnimationSuccessListener.forRunnable(() -> {
|
||||
setLayoutRotation(newRotation, mOrientationState.getDisplayRotation());
|
||||
mActivity.getDragLayer().recreateControllers();
|
||||
rotateAllChildTasks();
|
||||
updateChildTaskOrientations();
|
||||
setRecentsChangedOrientation(false).start();
|
||||
}));
|
||||
pa.start();
|
||||
|
@ -1099,7 +1155,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
}
|
||||
|
||||
|
||||
private void rotateAllChildTasks() {
|
||||
private void updateChildTaskOrientations() {
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
getTaskViewAt(i).setOrientationState(mOrientationState);
|
||||
}
|
||||
|
@ -1127,8 +1183,8 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
/**
|
||||
* Returns true if we should add a dummy taskView for the running task id
|
||||
*/
|
||||
protected boolean shouldAddDummyTaskView(int runningTaskId) {
|
||||
return getTaskView(runningTaskId) == null;
|
||||
protected boolean shouldAddDummyTaskView(RunningTaskInfo runningTaskInfo) {
|
||||
return runningTaskInfo != null && getTaskView(runningTaskInfo.taskId) == null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1137,8 +1193,8 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
* All subsequent calls to reload will keep the task as the first item until {@link #reset()}
|
||||
* is called. Also scrolls the view to this task.
|
||||
*/
|
||||
public void showCurrentTask(int runningTaskId) {
|
||||
if (shouldAddDummyTaskView(runningTaskId)) {
|
||||
public void showCurrentTask(RunningTaskInfo runningTaskInfo) {
|
||||
if (shouldAddDummyTaskView(runningTaskInfo)) {
|
||||
boolean wasEmpty = getChildCount() == 0;
|
||||
// Add an empty view for now until the task plan is loaded and applied
|
||||
final TaskView taskView = mTaskViewPool.getView();
|
||||
|
@ -1148,10 +1204,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
}
|
||||
// The temporary running task is only used for the duration between the start of the
|
||||
// gesture and the task list is loaded and applied
|
||||
mTmpRunningTask = new Task(new Task.TaskKey(runningTaskId, 0, new Intent(),
|
||||
new ComponentName(getContext(), getClass()), 0, 0), null, null, "", "", 0, 0,
|
||||
false, true, false, false, new ActivityManager.TaskDescription(), 0,
|
||||
new ComponentName("", ""), false);
|
||||
mTmpRunningTask = Task.from(new TaskKey(runningTaskInfo), runningTaskInfo, false);
|
||||
taskView.bind(mTmpRunningTask, mOrientationState);
|
||||
|
||||
// Measure and layout immediately so that the scroll values is updated instantly
|
||||
|
@ -1162,7 +1215,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
}
|
||||
|
||||
boolean runningTaskTileHidden = mRunningTaskTileHidden;
|
||||
setCurrentTask(runningTaskId);
|
||||
setCurrentTask(runningTaskInfo == null ? -1 : runningTaskInfo.taskId);
|
||||
setCurrentPage(getRunningTaskIndex());
|
||||
setRunningTaskViewShowScreenshot(false);
|
||||
setRunningTaskHidden(runningTaskTileHidden);
|
||||
|
@ -1332,10 +1385,13 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
/**
|
||||
* Updates linearInterpolation for the provided child position
|
||||
*/
|
||||
public void updateInterpolation(float childStart, int pageSpacing) {
|
||||
public void updateInterpolation(float childStart) {
|
||||
float pageCenter = childStart + halfPageSize;
|
||||
float distanceFromScreenCenter = screenCenter - pageCenter;
|
||||
float distanceToReachEdge = halfScreenSize + halfPageSize + pageSpacing;
|
||||
// How far the page has to move from the center to be offscreen, taking into account
|
||||
// the EDGE_SCALE_DOWN_FACTOR that will be applied at that position.
|
||||
float distanceToReachEdge = halfScreenSize
|
||||
+ halfPageSize * (1 - TaskView.EDGE_SCALE_DOWN_FACTOR);
|
||||
linearInterpolation = Math.min(1,
|
||||
Math.abs(distanceFromScreenCenter) / distanceToReachEdge);
|
||||
}
|
||||
|
@ -1358,7 +1414,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
FloatProperty<View> secondaryViewTranslate =
|
||||
mOrientationHandler.getSecondaryViewTranslate();
|
||||
int secondaryTaskDimension = mOrientationHandler.getSecondaryDimension(taskView);
|
||||
int verticalFactor = mOrientationHandler.getTaskDismissDirectionFactor();
|
||||
int verticalFactor = mOrientationHandler.getSecondaryTranslationDirectionFactor();
|
||||
|
||||
ResourceProvider rp = DynamicResource.provider(mActivity);
|
||||
SpringProperty sp = new SpringProperty(SpringProperty.FLAG_CAN_SPRING_ON_START)
|
||||
|
@ -1652,15 +1708,24 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
super.setVisibility(visibility);
|
||||
if (mActionsView != null) {
|
||||
mActionsView.updateHiddenFlags(HIDDEN_NO_RECENTS, visibility != VISIBLE);
|
||||
if (visibility != VISIBLE) {
|
||||
mActionsView.updateDisabledFlags(OverviewActionsView.DISABLED_SCROLLING, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
if (mOrientationState.setActivityConfiguration(newConfig)) {
|
||||
if (mOrientationState.setRecentsRotation(mActivity.getDisplay().getRotation())) {
|
||||
updateOrientationHandler();
|
||||
}
|
||||
// If overview is in modal state when rotate, reset it to overview state without running
|
||||
// animation.
|
||||
if (mActivity.isInState(OVERVIEW_MODAL_TASK)) {
|
||||
mActivity.getStateManager().goToState(LauncherState.OVERVIEW, false);
|
||||
resetModalVisuals();
|
||||
}
|
||||
}
|
||||
|
||||
public void setLayoutRotation(int touchRotation, int displayRotation) {
|
||||
|
@ -1680,10 +1745,11 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
: View.LAYOUT_DIRECTION_RTL);
|
||||
mClearAllButton.setRotation(mOrientationHandler.getDegreesRotated());
|
||||
mActivity.getDragLayer().recreateControllers();
|
||||
boolean isInLandscape = mOrientationState.getTouchRotation() != 0
|
||||
boolean isInLandscape = mOrientationState.getTouchRotation() != ROTATION_0
|
||||
|| mOrientationState.getRecentsActivityRotation() != ROTATION_0;
|
||||
mActionsView.updateHiddenFlags(HIDDEN_NON_ZERO_ROTATION,
|
||||
!mOrientationState.canRecentsActivityRotate() && isInLandscape);
|
||||
updateChildTaskOrientations();
|
||||
resetPaddingFromTaskSize();
|
||||
requestLayout();
|
||||
// Reapply the current page to update page scrolls.
|
||||
|
@ -1769,14 +1835,15 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
setPivotX(mTempPointF.x);
|
||||
setPivotY(mTempPointF.y);
|
||||
setTaskModalness(mTaskModalness);
|
||||
mLastComputedTaskPushOutDistance = null;
|
||||
updatePageOffsets();
|
||||
setImportantForAccessibility(isModal() ? IMPORTANT_FOR_ACCESSIBILITY_NO
|
||||
: IMPORTANT_FOR_ACCESSIBILITY_AUTO);
|
||||
}
|
||||
|
||||
private void updatePageOffsets() {
|
||||
float offset = mAdjacentPageOffset * getWidth();
|
||||
float modalOffset = ACCEL_0_75.getInterpolation(mTaskModalness) * getWidth();
|
||||
float offset = mAdjacentPageOffset;
|
||||
float modalOffset = ACCEL_0_75.getInterpolation(mTaskModalness);
|
||||
if (mIsRtl) {
|
||||
offset = -offset;
|
||||
modalOffset = -modalOffset;
|
||||
|
@ -1785,18 +1852,99 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
|
||||
TaskView runningTask = mRunningTaskId == -1 || !mRunningTaskTileHidden
|
||||
? null : getTaskView(mRunningTaskId);
|
||||
int midPoint = runningTask == null ? -1 : indexOfChild(runningTask);
|
||||
int currentPage = getCurrentPage();
|
||||
int midpoint = runningTask == null ? -1 : indexOfChild(runningTask);
|
||||
int modalMidpoint = getCurrentPage();
|
||||
|
||||
float midpointOffsetSize = 0;
|
||||
float leftOffsetSize = midpoint - 1 >= 0
|
||||
? -getOffsetSize(midpoint - 1, midpoint, offset)
|
||||
: 0;
|
||||
float rightOffsetSize = midpoint + 1 < count
|
||||
? getOffsetSize(midpoint + 1, midpoint, offset)
|
||||
: 0;
|
||||
|
||||
float modalMidpointOffsetSize = 0;
|
||||
float modalLeftOffsetSize = modalMidpoint - 1 >= 0
|
||||
? -getOffsetSize(modalMidpoint - 1, modalMidpoint, modalOffset)
|
||||
: 0;
|
||||
float modalRightOffsetSize = modalMidpoint + 1 < count
|
||||
? getOffsetSize(modalMidpoint + 1, modalMidpoint, modalOffset)
|
||||
: 0;
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
float translation = i == midPoint ? 0 : (i < midPoint ? -offset : offset);
|
||||
float modalTranslation =
|
||||
i == currentPage ? 0 : (i < currentPage ? -modalOffset : modalOffset);
|
||||
getChildAt(i).setTranslationX(translation + modalTranslation);
|
||||
float translation = i == midpoint
|
||||
? midpointOffsetSize
|
||||
: i < midpoint
|
||||
? leftOffsetSize
|
||||
: rightOffsetSize;
|
||||
float modalTranslation = i == modalMidpoint
|
||||
? modalMidpointOffsetSize
|
||||
: i < modalMidpoint
|
||||
? modalLeftOffsetSize
|
||||
: modalRightOffsetSize;
|
||||
float totalTranslation = translation + modalTranslation;
|
||||
mOrientationHandler.getPrimaryViewTranslate().set(getChildAt(i),
|
||||
totalTranslation * mOrientationHandler.getPrimaryTranslationDirectionFactor());
|
||||
}
|
||||
updateCurveProperties();
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes the distance to offset the given child such that it is completely offscreen when
|
||||
* translating away from the given midpoint.
|
||||
* @param offsetProgress From 0 to 1 where 0 means no offset and 1 means offset offscreen.
|
||||
*/
|
||||
private float getOffsetSize(int childIndex, int midpointIndex, float offsetProgress) {
|
||||
if (offsetProgress == 0) {
|
||||
// Don't bother calculating everything below if we won't offset anyway.
|
||||
return 0;
|
||||
}
|
||||
// First, get the position of the task relative to the midpoint. If there is no midpoint
|
||||
// then we just use the normal (centered) task position.
|
||||
mTempRectF.set(mLastComputedTaskSize);
|
||||
RectF taskPosition = mTempRectF;
|
||||
float desiredLeft = getWidth();
|
||||
float distanceToOffscreen = desiredLeft - taskPosition.left;
|
||||
// Used to calculate the scale of the task view based on its new offset.
|
||||
float centerToOffscreenProgress = Math.abs(offsetProgress);
|
||||
if (midpointIndex > -1) {
|
||||
// When there is a midpoint reference task, adjacent tasks have less distance to travel
|
||||
// to reach offscreen. Offset the task position to the task's starting point.
|
||||
View child = getChildAt(childIndex);
|
||||
View midpointChild = getChildAt(midpointIndex);
|
||||
int distanceFromMidpoint = Math.abs(mOrientationHandler.getChildStart(child)
|
||||
- mOrientationHandler.getChildStart(midpointChild)
|
||||
+ getDisplacementFromScreenCenter(midpointIndex));
|
||||
taskPosition.offset(distanceFromMidpoint, 0);
|
||||
centerToOffscreenProgress = Utilities.mapRange(centerToOffscreenProgress,
|
||||
distanceFromMidpoint / distanceToOffscreen, 1);
|
||||
}
|
||||
// Find the task's scale based on its offscreen progress, then see how far it still needs to
|
||||
// move to be completely offscreen.
|
||||
Utilities.scaleRectFAboutCenter(taskPosition,
|
||||
TaskView.getCurveScaleForInterpolation(centerToOffscreenProgress));
|
||||
distanceToOffscreen = desiredLeft - taskPosition.left;
|
||||
// Finally, we need to account for RecentsView scale, because it moves tasks based on its
|
||||
// pivot. To do this, we move the task position to where it would be offscreen at scale = 1
|
||||
// (computed above), then we apply the scale via getMatrix() to determine how much that
|
||||
// moves the task from its desired position, and adjust the computed distance accordingly.
|
||||
if (mLastComputedTaskPushOutDistance == null) {
|
||||
taskPosition.offsetTo(desiredLeft, 0);
|
||||
getMatrix().mapRect(taskPosition);
|
||||
mLastComputedTaskPushOutDistance = (taskPosition.left - desiredLeft) / getScaleX();
|
||||
}
|
||||
distanceToOffscreen -= mLastComputedTaskPushOutDistance;
|
||||
return distanceToOffscreen * offsetProgress;
|
||||
}
|
||||
|
||||
private void setTaskViewsSecondaryTranslation(float translation) {
|
||||
mTaskViewsSecondaryTranslation = translation;
|
||||
for (int i = 0; i < getTaskViewCount(); i++) {
|
||||
TaskView task = getTaskViewAt(i);
|
||||
mOrientationHandler.getSecondaryViewTranslate().set(task, translation / getScaleY());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Do not assume motion across X axis for adjacent page
|
||||
*/
|
||||
|
@ -1895,7 +2043,7 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
float toScale = getMaxScaleForFullScreen();
|
||||
if (launchingCenterTask) {
|
||||
RecentsView recentsView = tv.getRecentsView();
|
||||
anim.play(ObjectAnimator.ofFloat(recentsView, SCALE_PROPERTY, toScale));
|
||||
anim.play(ObjectAnimator.ofFloat(recentsView, RECENTS_SCALE_PROPERTY, toScale));
|
||||
anim.play(ObjectAnimator.ofFloat(recentsView, FULLSCREEN_PROGRESS, 1));
|
||||
} else {
|
||||
// We are launching an adjacent task, so parallax the center and other adjacent task.
|
||||
|
@ -2181,7 +2329,14 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
if (pageIndex == -1) {
|
||||
return 0;
|
||||
}
|
||||
return getScrollForPage(pageIndex) - mOrientationHandler.getPrimaryScroll(this);
|
||||
// Unbound the scroll (due to overscroll) if the adjacent tasks are offset away from it.
|
||||
// This allows the page to move freely, given there's no visual indication why it shouldn't.
|
||||
int boundedScroll = mOrientationHandler.getPrimaryScroll(this);
|
||||
int unboundedScroll = getUnboundedScroll();
|
||||
float unboundedProgress = mAdjacentPageOffset;
|
||||
int scroll = Math.round(unboundedScroll * unboundedProgress
|
||||
+ boundedScroll * (1 - unboundedProgress));
|
||||
return getScrollForPage(pageIndex) - scroll;
|
||||
}
|
||||
|
||||
public Consumer<MotionEvent> getEventDispatcher(float navbarRotation) {
|
||||
|
@ -2283,6 +2438,10 @@ public abstract class RecentsView<T extends StatefulActivity> extends PagedView
|
|||
*/
|
||||
public void setModalStateEnabled(boolean isModalState) { }
|
||||
|
||||
public TaskOverlayFactory getTaskOverlayFactory() {
|
||||
return mTaskOverlayFactory;
|
||||
}
|
||||
|
||||
public BaseActivityInterface getSizeStrategy() {
|
||||
return mSizeStrategy;
|
||||
}
|
||||
|
|
|
@ -169,7 +169,9 @@ public class TaskMenuView extends AbstractFloatingView {
|
|||
}
|
||||
if (mIsOpen) {
|
||||
mOptionLayout.removeAllViews();
|
||||
populateAndLayoutMenu();
|
||||
if (!populateAndLayoutMenu()) {
|
||||
close(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -186,14 +188,22 @@ public class TaskMenuView extends AbstractFloatingView {
|
|||
}
|
||||
mActivity.getDragLayer().addView(this);
|
||||
mTaskView = taskView;
|
||||
populateAndLayoutMenu();
|
||||
if (!populateAndLayoutMenu()) {
|
||||
return false;
|
||||
}
|
||||
post(this::animateOpen);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void populateAndLayoutMenu() {
|
||||
/** @return true if successfully able to populate task view menu, false otherwise */
|
||||
private boolean populateAndLayoutMenu() {
|
||||
if (mTaskView.getTask().icon == null) {
|
||||
// Icon may not be loaded
|
||||
return false;
|
||||
}
|
||||
addMenuOptions(mTaskView);
|
||||
orientAroundTaskView(mTaskView);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void addMenuOptions(TaskView taskView) {
|
||||
|
@ -240,8 +250,10 @@ public class TaskMenuView extends AbstractFloatingView {
|
|||
setLayoutParams(params);
|
||||
setScaleX(taskView.getScaleX());
|
||||
setScaleY(taskView.getScaleY());
|
||||
boolean canActivityRotate = taskView.getRecentsView()
|
||||
.mOrientationState.isRecentsActivityRotationAllowed();
|
||||
mOptionLayout.setOrientation(orientationHandler
|
||||
.getTaskMenuLayoutOrientation(mOptionLayout));
|
||||
.getTaskMenuLayoutOrientation(canActivityRotate, mOptionLayout));
|
||||
setPosition(sTempRect.left - insets.left, sTempRect.top - insets.top,
|
||||
taskView.getPagedOrientationHandler());
|
||||
}
|
||||
|
|
|
@ -52,14 +52,12 @@ import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper;
|
|||
import com.android.launcher3.util.MainThreadInitializedObject;
|
||||
import com.android.launcher3.util.SystemUiController;
|
||||
import com.android.launcher3.util.Themes;
|
||||
import com.android.quickstep.TaskOverlayFactory;
|
||||
import com.android.quickstep.TaskOverlayFactory.TaskOverlay;
|
||||
import com.android.quickstep.views.TaskView.FullscreenDrawParams;
|
||||
import com.android.systemui.plugins.OverviewScreenshotActions;
|
||||
import com.android.systemui.plugins.PluginListener;
|
||||
import com.android.systemui.shared.recents.model.Task;
|
||||
import com.android.systemui.shared.recents.model.ThumbnailData;
|
||||
import com.android.systemui.shared.system.ConfigurationCompat;
|
||||
|
||||
/**
|
||||
* A task in the Recents view.
|
||||
|
@ -86,7 +84,7 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
};
|
||||
|
||||
private final BaseActivity mActivity;
|
||||
private final TaskOverlay mOverlay;
|
||||
private TaskOverlay mOverlay;
|
||||
private final boolean mIsDarkTextTheme;
|
||||
private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
private final Paint mBackgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
|
@ -119,7 +117,6 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
|
||||
public TaskThumbnailView(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
mOverlay = TaskOverlayFactory.INSTANCE.get(context).createOverlay(this);
|
||||
mPaint.setFilterBitmap(true);
|
||||
mBackgroundPaint.setColor(Color.WHITE);
|
||||
mClearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
|
||||
|
@ -135,7 +132,7 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
* @param task
|
||||
*/
|
||||
public void bind(Task task) {
|
||||
mOverlay.reset();
|
||||
getTaskOverlay().reset();
|
||||
mTask = task;
|
||||
int color = task == null ? Color.BLACK : task.colorBackground | 0xFF000000;
|
||||
mPaint.setColor(color);
|
||||
|
@ -177,7 +174,7 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
mBitmapShader = null;
|
||||
mThumbnailData = null;
|
||||
mPaint.setShader(null);
|
||||
mOverlay.reset();
|
||||
getTaskOverlay().reset();
|
||||
}
|
||||
if (mOverviewScreenshotActionsPlugin != null) {
|
||||
mOverviewScreenshotActionsPlugin.setupActions(getTaskView(), getThumbnail(), mActivity);
|
||||
|
@ -201,6 +198,9 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
}
|
||||
|
||||
public TaskOverlay getTaskOverlay() {
|
||||
if (mOverlay == null) {
|
||||
mOverlay = getTaskView().getRecentsView().getTaskOverlayFactory().createOverlay(this);
|
||||
}
|
||||
return mOverlay;
|
||||
}
|
||||
|
||||
|
@ -357,11 +357,11 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
}
|
||||
|
||||
private void updateOverlay() {
|
||||
if (mOverlayEnabled && mBitmapShader != null && mThumbnailData != null) {
|
||||
mOverlay.initOverlay(mTask, mThumbnailData, mPreviewPositionHelper.mMatrix,
|
||||
if (mOverlayEnabled) {
|
||||
getTaskOverlay().initOverlay(mTask, mThumbnailData, mPreviewPositionHelper.mMatrix,
|
||||
mPreviewPositionHelper.mIsOrientationChanged);
|
||||
} else {
|
||||
mOverlay.reset();
|
||||
getTaskOverlay().reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -385,8 +385,8 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
if (mBitmapShader != null && mThumbnailData != null) {
|
||||
mPreviewRect.set(0, 0, mThumbnailData.thumbnail.getWidth(),
|
||||
mThumbnailData.thumbnail.getHeight());
|
||||
int currentRotation = ConfigurationCompat.getWindowConfigurationRotation(
|
||||
mActivity.getResources().getConfiguration());
|
||||
int currentRotation = getTaskView().getRecentsView().getPagedViewOrientedState()
|
||||
.getRecentsActivityRotation();
|
||||
mPreviewPositionHelper.updateThumbnailMatrix(mPreviewRect, mThumbnailData,
|
||||
getMeasuredWidth(), getMeasuredHeight(), mActivity.getDeviceProfile(),
|
||||
currentRotation);
|
||||
|
@ -480,17 +480,18 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
boolean isOrientationDifferent;
|
||||
mClipBottom = -1;
|
||||
|
||||
int thumbnailRotation = thumbnailData.rotation;
|
||||
int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation);
|
||||
Rect thumbnailInsets = getBoundedInsets(
|
||||
dp.getInsets(), thumbnailData.insets, deltaRotate);
|
||||
|
||||
float scale = thumbnailData.scale;
|
||||
Rect activityInsets = dp.getInsets();
|
||||
Rect thumbnailInsets = getBoundedInsets(activityInsets, thumbnailData.insets);
|
||||
final float thumbnailWidth = thumbnailPosition.width()
|
||||
- (thumbnailInsets.left + thumbnailInsets.right) * scale;
|
||||
final float thumbnailHeight = thumbnailPosition.height()
|
||||
- (thumbnailInsets.top + thumbnailInsets.bottom) * scale;
|
||||
|
||||
final float thumbnailScale;
|
||||
int thumbnailRotation = thumbnailData.rotation;
|
||||
int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation);
|
||||
|
||||
// Landscape vs portrait change
|
||||
boolean windowingModeSupportsRotation = !dp.isMultiWindowMode
|
||||
|
@ -559,7 +560,10 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
|
|||
mIsOrientationChanged = isOrientationDifferent;
|
||||
}
|
||||
|
||||
private Rect getBoundedInsets(Rect activityInsets, Rect insets) {
|
||||
private Rect getBoundedInsets(Rect activityInsets, Rect insets, int deltaRotation) {
|
||||
if (deltaRotation != 0) {
|
||||
return insets;
|
||||
}
|
||||
return new Rect(Math.min(insets.left, activityInsets.left),
|
||||
Math.min(insets.top, activityInsets.top),
|
||||
Math.min(insets.right, activityInsets.right),
|
||||
|
|
|
@ -22,16 +22,19 @@ import static android.view.Gravity.CENTER_VERTICAL;
|
|||
import static android.view.Gravity.END;
|
||||
import static android.view.Gravity.START;
|
||||
import static android.view.Gravity.TOP;
|
||||
import static android.view.Surface.ROTATION_180;
|
||||
import static android.view.Surface.ROTATION_270;
|
||||
import static android.view.Surface.ROTATION_90;
|
||||
import static android.widget.Toast.LENGTH_SHORT;
|
||||
|
||||
import static com.android.launcher3.QuickstepAppTransitionManagerImpl.RECENTS_LAUNCH_DURATION;
|
||||
import static com.android.launcher3.Utilities.comp;
|
||||
import static com.android.launcher3.Utilities.getDescendantCoordRelativeToAncestor;
|
||||
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
|
||||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
import static com.android.launcher3.anim.Interpolators.TOUCH_RESPONSE_INTERPOLATOR;
|
||||
import static com.android.launcher3.config.FeatureFlags.ENABLE_QUICKSTEP_LIVE_TILE;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent
|
||||
.LAUNCHER_TASK_ICON_TAP_OR_LONGPRESS;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASK_ICON_TAP_OR_LONGPRESS;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TASK_LAUNCH_TAP;
|
||||
|
||||
import android.animation.Animator;
|
||||
|
@ -53,7 +56,9 @@ import android.os.Handler;
|
|||
import android.util.AttributeSet;
|
||||
import android.util.FloatProperty;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.Surface;
|
||||
import android.view.TouchDelegate;
|
||||
import android.view.View;
|
||||
import android.view.ViewOutlineProvider;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
|
@ -78,6 +83,7 @@ import com.android.launcher3.userevent.nano.LauncherLogProto;
|
|||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
|
||||
import com.android.launcher3.util.ComponentKey;
|
||||
import com.android.launcher3.util.TransformingTouchDelegate;
|
||||
import com.android.launcher3.util.ViewPool.Reusable;
|
||||
import com.android.quickstep.RecentsModel;
|
||||
import com.android.quickstep.TaskIconCache;
|
||||
|
@ -122,6 +128,14 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
|
||||
public static final long SCALE_ICON_DURATION = 120;
|
||||
private static final long DIM_ANIM_DURATION = 700;
|
||||
/**
|
||||
* This technically can be a vanilla {@link TouchDelegate} class, however that class requires
|
||||
* setting the touch bounds at construction, so we'd repeatedly be created many instances
|
||||
* unnecessarily as scrolling occurs, whereas {@link TransformingTouchDelegate} allows touch
|
||||
* delegated bounds only to be updated.
|
||||
*/
|
||||
private TransformingTouchDelegate mIconTouchDelegate;
|
||||
private TransformingTouchDelegate mChipTouchDelegate;
|
||||
|
||||
private static final List<Rect> SYSTEM_GESTURE_EXCLUSION_RECT =
|
||||
Collections.singletonList(new Rect());
|
||||
|
@ -186,6 +200,8 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
private int mStackHeight;
|
||||
private View mContextualChipWrapper;
|
||||
private View mContextualChip;
|
||||
private final float[] mIconCenterCoords = new float[2];
|
||||
private final float[] mChipCenterCoords = new float[2];
|
||||
|
||||
public TaskView(Context context) {
|
||||
this(context, null);
|
||||
|
@ -246,6 +262,54 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
super.onFinishInflate();
|
||||
mSnapshotView = findViewById(R.id.snapshot);
|
||||
mIconView = findViewById(R.id.icon);
|
||||
mIconTouchDelegate = new TransformingTouchDelegate(mIconView);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the taskview should take the touch event from parent. Events passed to children
|
||||
* that might require special handling.
|
||||
*/
|
||||
public boolean offerTouchToChildren(MotionEvent event) {
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
computeAndSetIconTouchDelegate();
|
||||
computeAndSetChipTouchDelegate();
|
||||
}
|
||||
if (mIconTouchDelegate != null && mIconTouchDelegate.onTouchEvent(event)) {
|
||||
return true;
|
||||
}
|
||||
if (mChipTouchDelegate != null && mChipTouchDelegate.onTouchEvent(event)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void computeAndSetIconTouchDelegate() {
|
||||
float iconHalfSize = mIconView.getWidth() / 2f;
|
||||
mIconCenterCoords[0] = mIconCenterCoords[1] = iconHalfSize;
|
||||
getDescendantCoordRelativeToAncestor(mIconView, mActivity.getDragLayer(), mIconCenterCoords,
|
||||
false);
|
||||
mIconTouchDelegate.setBounds(
|
||||
(int) (mIconCenterCoords[0] - iconHalfSize),
|
||||
(int) (mIconCenterCoords[1] - iconHalfSize),
|
||||
(int) (mIconCenterCoords[0] + iconHalfSize),
|
||||
(int) (mIconCenterCoords[1] + iconHalfSize));
|
||||
}
|
||||
|
||||
private void computeAndSetChipTouchDelegate() {
|
||||
if (mContextualChipWrapper != null) {
|
||||
float chipHalfWidth = mContextualChipWrapper.getWidth() / 2f;
|
||||
float chipHalfHeight = mContextualChipWrapper.getHeight() / 2f;
|
||||
mChipCenterCoords[0] = chipHalfWidth;
|
||||
mChipCenterCoords[1] = chipHalfHeight;
|
||||
getDescendantCoordRelativeToAncestor(mContextualChipWrapper, mActivity.getDragLayer(),
|
||||
mChipCenterCoords,
|
||||
false);
|
||||
mChipTouchDelegate.setBounds(
|
||||
(int) (mChipCenterCoords[0] - chipHalfWidth),
|
||||
(int) (mChipCenterCoords[1] - chipHalfHeight),
|
||||
(int) (mChipCenterCoords[0] + chipHalfWidth),
|
||||
(int) (mChipCenterCoords[1] + chipHalfHeight));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -255,6 +319,9 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
* @param modalness [0, 1] 0 being in context with other tasks, 1 being shown on its own.
|
||||
*/
|
||||
public void setModalness(float modalness) {
|
||||
if (mModalness == modalness) {
|
||||
return;
|
||||
}
|
||||
mModalness = modalness;
|
||||
mIconView.setAlpha(comp(modalness));
|
||||
if (mContextualChip != null) {
|
||||
|
@ -264,7 +331,6 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
if (mContextualChipWrapper != null) {
|
||||
mContextualChipWrapper.setAlpha(comp(modalness));
|
||||
}
|
||||
|
||||
updateFooterVerticalOffset(mFooterVerticalOffset);
|
||||
}
|
||||
|
||||
|
@ -468,18 +534,18 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
int thumbnailPadding = (int) getResources().getDimension(R.dimen.task_thumbnail_top_margin);
|
||||
LayoutParams iconParams = (LayoutParams) mIconView.getLayoutParams();
|
||||
switch (orientationHandler.getRotation()) {
|
||||
case Surface.ROTATION_90:
|
||||
case ROTATION_90:
|
||||
iconParams.gravity = (isRtl ? START : END) | CENTER_VERTICAL;
|
||||
iconParams.rightMargin = -thumbnailPadding;
|
||||
iconParams.leftMargin = 0;
|
||||
iconParams.topMargin = snapshotParams.topMargin / 2;
|
||||
break;
|
||||
case Surface.ROTATION_180:
|
||||
case ROTATION_180:
|
||||
iconParams.gravity = BOTTOM | CENTER_HORIZONTAL;
|
||||
iconParams.bottomMargin = -thumbnailPadding;
|
||||
iconParams.leftMargin = iconParams.topMargin = iconParams.rightMargin = 0;
|
||||
break;
|
||||
case Surface.ROTATION_270:
|
||||
case ROTATION_270:
|
||||
iconParams.gravity = (isRtl ? END : START) | CENTER_VERTICAL;
|
||||
iconParams.leftMargin = -thumbnailPadding;
|
||||
iconParams.rightMargin = 0;
|
||||
|
@ -512,7 +578,11 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
.getInterpolation(progress);
|
||||
mIconView.setScaleX(scale);
|
||||
mIconView.setScaleY(scale);
|
||||
|
||||
if (mContextualChip != null && mContextualChipWrapper != null) {
|
||||
mContextualChipWrapper.setAlpha(scale);
|
||||
mContextualChip.setScaleX(scale);
|
||||
mContextualChip.setScaleY(scale);
|
||||
}
|
||||
updateFooterVerticalOffset(1.0f - scale);
|
||||
}
|
||||
|
||||
|
@ -691,6 +761,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
mContextualChip.animate().scaleX(1f).scaleY(1f).setDuration(50);
|
||||
}
|
||||
if (mContextualChipWrapper != null) {
|
||||
mChipTouchDelegate = new TransformingTouchDelegate(mContextualChipWrapper);
|
||||
mContextualChipWrapper.animate().alpha(1f).setDuration(50);
|
||||
}
|
||||
}
|
||||
|
@ -712,6 +783,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable {
|
|||
View oldContextualChipWrapper = mContextualChipWrapper;
|
||||
mContextualChipWrapper = null;
|
||||
mContextualChip = null;
|
||||
mChipTouchDelegate = null;
|
||||
return oldContextualChipWrapper;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2020 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.
|
||||
-->
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<solid android:color="#FFFFFFFF" />
|
||||
</shape>
|
|
@ -24,6 +24,14 @@
|
|||
android:layout_height="match_parent"
|
||||
android:background="@drawable/gesture_tutorial_ripple"/>
|
||||
|
||||
<com.android.launcher3.views.ClipIconView
|
||||
android:id="@+id/gesture_tutorial_fake_icon_view"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:background="@drawable/bg_circle"
|
||||
android:backgroundTint="@color/gesture_tutorial_fake_task_view_color"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<View
|
||||
android:id="@+id/gesture_tutorial_fake_task_view"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -41,81 +49,81 @@
|
|||
android:id="@+id/gesture_tutorial_fragment_close_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="18dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:background="@android:color/transparent"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:accessibilityTraversalAfter="@id/gesture_tutorial_fragment_titles_container"
|
||||
android:background="@android:color/transparent"
|
||||
android:contentDescription="@string/gesture_tutorial_close_button_content_description"
|
||||
android:tint="?android:attr/textColorPrimary"
|
||||
android:src="@drawable/gesture_tutorial_close_button"/>
|
||||
android:padding="18dp"
|
||||
android:src="@drawable/gesture_tutorial_close_button"
|
||||
android:tint="?android:attr/textColorPrimary"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/gesture_tutorial_fragment_titles_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="70dp"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginTop="70dp"
|
||||
android:focusable="true"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/gesture_tutorial_fragment_title_view"
|
||||
style="@style/TextAppearance.GestureTutorial.Title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/gesture_tutorial_title_margin_start_end"
|
||||
android:layout_marginEnd="@dimen/gesture_tutorial_title_margin_start_end"
|
||||
style="@style/TextAppearance.GestureTutorial.Title"/>
|
||||
android:layout_marginEnd="@dimen/gesture_tutorial_title_margin_start_end"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/gesture_tutorial_fragment_subtitle_view"
|
||||
style="@style/TextAppearance.GestureTutorial.Subtitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="@dimen/gesture_tutorial_subtitle_margin_start_end"
|
||||
android:layout_marginEnd="@dimen/gesture_tutorial_subtitle_margin_start_end"
|
||||
style="@style/TextAppearance.GestureTutorial.Subtitle"/>
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="@dimen/gesture_tutorial_subtitle_margin_start_end"/>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/gesture_tutorial_fragment_feedback_view"
|
||||
style="@style/TextAppearance.GestureTutorial.Feedback"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_above="@id/gesture_tutorial_fragment_action_button"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginStart="@dimen/gesture_tutorial_feedback_margin_start_end"
|
||||
android:layout_marginEnd="@dimen/gesture_tutorial_feedback_margin_start_end"
|
||||
style="@style/TextAppearance.GestureTutorial.Feedback"/>
|
||||
android:layout_marginBottom="10dp"/>
|
||||
|
||||
<!-- android:stateListAnimator="@null" removes shadow and normal on click behavior (increase
|
||||
of elevation and shadow) which is replaced by ripple effect in android:foreground -->
|
||||
<Button
|
||||
android:id="@+id/gesture_tutorial_fragment_action_button"
|
||||
style="@style/TextAppearance.GestureTutorial.ButtonLabel"
|
||||
android:layout_width="142dp"
|
||||
android:layout_height="49dp"
|
||||
android:layout_marginEnd="@dimen/gesture_tutorial_button_margin_start_end"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:stateListAnimator="@null"
|
||||
android:layout_marginEnd="@dimen/gesture_tutorial_button_margin_start_end"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:background="@drawable/gesture_tutorial_action_button_background"
|
||||
android:foreground="?android:attr/selectableItemBackgroundBorderless"
|
||||
style="@style/TextAppearance.GestureTutorial.ButtonLabel"/>
|
||||
android:stateListAnimator="@null"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/gesture_tutorial_fragment_action_text_button"
|
||||
style="@style/TextAppearance.GestureTutorial.TextButtonLabel"
|
||||
android:layout_width="142dp"
|
||||
android:layout_height="49dp"
|
||||
android:layout_marginStart="@dimen/gesture_tutorial_button_margin_start_end"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:stateListAnimator="@null"
|
||||
android:layout_marginStart="@dimen/gesture_tutorial_button_margin_start_end"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:background="@null"
|
||||
android:foreground="?android:attr/selectableItemBackgroundBorderless"
|
||||
style="@style/TextAppearance.GestureTutorial.TextButtonLabel"/>
|
||||
android:stateListAnimator="@null"/>
|
||||
</RelativeLayout>
|
|
@ -17,9 +17,7 @@
|
|||
<com.android.quickstep.views.OverviewActionsView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/overview_actions_height"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:layout_marginLeft="@dimen/overview_actions_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/overview_actions_horizontal_margin">
|
||||
android:layout_gravity="center_horizontal|bottom">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/action_buttons"
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Verdeelde skerm"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Speld vas"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Vormvry"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Oorsig"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Geen onlangse items nie"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Maak toe"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Programgebruikinstellings"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Vee alles uit"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Onlangse programme"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Programvoorstelle"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Alle programme"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Jou voorspelde programme"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Kry programvoorstelle in die onderste ry van jou tuisskerm"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Kry programvoorstelle op jou tuisskerm se gunstelingery"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Kry maklik toegang tot jou programme wat die meeste gebruik word, direk van die tuisskerm af. Voorstelle sal verander op grond van jou roetines. Programme in die onderste ry sal opskuif na jou tuisskerm."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Kry maklik toegang tot jou programme wat die meeste gebruik word, direk van die tuisskerm af. Voorstelle sal verander op grond van jou roetines. Programme in die gunstelingery sal na jou tuisskerm toe skuif."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Kry maklik toegang tot jou programme wat die meeste gebruik word, direk van die tuisskerm af. Voorstelle sal verander op grond van jou roetines. Programme in die onderste ry sal na \'n nuwe vouer toe skuif."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Kry programvoorstelle"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Nee, dankie"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Instellings"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Programme wat die meeste gebruik word, verskyn hier, en verander op grond van roetines"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Sleep programme van die onderste ry af om programvoorstelle te kry"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Programvoorstelle is in leë spasie bygevoeg"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Programvoorstelle is geaktiveer"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Programvoorstelle is gedeaktiveer"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Voorspelde program: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Deel"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Skermkiekie"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Jou organisasie laat nie hierdie program toe nie"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"የተከፈለ ማያ ገጽ"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"ሰካ"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"ነጻ ቅጽ"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ማጠቃለያ"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"ምንም የቅርብ ጊዜ ንጥሎች የሉም"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"ዝጋ"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"የመተግበሪያ አጠቃቀም ቅንብሮች"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"ሁሉንም አጽዳ"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"የቅርብ ጊዜ መተግበሪያዎች"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>፣ <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 ደቂቃ"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"ዛሬ <xliff:g id="TIME">%1$s</xliff:g> ቀርቷል"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"የመተግበሪያ ጥቆማዎች"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"የመተግበሪያ አስተያየቶች"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"ሁሉም መተግበሪያዎች"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"የእርስዎ የሚገመቱ መተግበሪያዎች"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"በመነሻ ገጽዎ ታችኛው ረድፍ ላይ የመተግበሪያ አስተያየት ጥቆማዎችን ያግኙ"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"በመነሻ ማያ ገጽዎ የተወዳጆች ረድፍ ላይ የመተግበሪያ አስተያየት ጥቆማዎችን ያግኙ"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"በጣም ስራ ላይ የዋሉ መተግበሪያዎችዎን በቀላሉ ከመነሻ ገጹ ሆነው ይድረሱባቸው። የአስተያየት ጥቆማዎች በእርስዎ ዕለት ተዕለት ተግባራት ላይ በመመስረት ይቀየራሉ። በታችኛው ረድፍ ላይ ያሉ መተግበሪያዎች ወደ መነሻ ገጽዎ ይወሰዳሉ።"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"በጣም ሥራ ላይ የዋሉ መተግበሪያዎችዎን በቀላሉ ከመነሻ ገጹ ሆነው ይድረሱባቸው። የአስተያየት ጥቆማዎች በእርስዎ ዕለት ተዕለት ተግባራት ላይ በመመሥረት ይቀየራሉ። በተወዳጆች ረድፍ ውስጥ ያሉ መተግበሪያዎች ወደ የእርስዎ መነሻ ማያ ገጽ ይንቀሳቀሳሉ።"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"በጣም ስራ ላይ የዋሉ መተግበሪያዎችዎን በቀላሉ ከመነሻ ገጹ ሆነው ይድረሱባቸው። የአስተያየት ጥቆማዎች በእርስዎ ዕለት ተዕለት ተግባራት ላይ በመመስረት ይቀየራሉ። በታችኛው ረድፍ ላይ ያሉ መተግበሪያዎች ወደ አዲስ አቃፊ ይወሰዳሉ።"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"የመተግበሪያ አስተያየት ጥቆማዎችን አግኝ"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"አይ፣ አመሰግናለሁ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"ቅንብሮች"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"በብዛት ስራ ላይ የዋሉ መተግበሪያዎች እዚህ ይመጣሉ፣ እና በዕለት ተዕለት ተግባራት ላይ በመመስረት ይቀየራሉ"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"የመተግበሪያ ጥቆማዎችን ለማግኘት መተግበሪያዎችን ከታችኛው ረድፍ ይጎትቱ"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"የመተግበሪያ አስተያየት ጥቆማዎች ወደ ባዶ ቦታ ታክለዋል"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"የመተግበሪያ አስተያየት ጥቆማዎች ነቅቷል"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"የመተግበሪያ አስተያየቶች ቦዝነዋል"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"የተገመተው መተግበሪያ፦ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"አጋራ"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"ቅጽበታዊ ገጽ እይታ"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ይህ ድርጊት በመተግበሪያው ወይም በእርስዎ ድርጅት አይፈቀድም"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"تقسيم الشاشة"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"تثبيت"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"شكل مجاني"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"نظرة عامة"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"ليست هناك عناصر تم استخدامها مؤخرًا"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"إغلاق"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"إعدادات استخدام التطبيق"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"محو الكل"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"التطبيقات المستخدمة مؤخرًا"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>، <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"أقل من دقيقة"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"يتبقى اليوم <xliff:g id="TIME">%1$s</xliff:g>."</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"اقتراحات التطبيقات"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"التطبيقات المقترحة"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"جميع التطبيقات"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"تطبيقاتك المتوقّعة"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"رؤية التطبيقات المقترحة في الصف السفلي من الشاشة الرئيسية"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"رؤية التطبيقات المقترحة في صف التطبيقات المفضّلة في الشاشة الرئيسية"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"يمكنك الوصول إلى التطبيقات الأكثر استخدامًا بسهولة من الشاشة الرئيسية مباشرةً. سيتم تغيير الاقتراحات استنادًا إلى استخدامك الروتيني. وسيتم نقل التطبيقات من الصف السفلي في الشاشة الرئيسية إلى الصف الأعلى."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"يمكنك الوصول إلى التطبيقات الأكثر استخدامًا بسهولة من الشاشة الرئيسية مباشرةً. سيتم تغيير الاقتراحات استنادًا إلى سلاسل الإجراءات. سيتم نقل التطبيقات من صف التطبيقات المفضّلة إلى الشاشة الرئيسية."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"يمكنك الوصول إلى التطبيقات الأكثر استخدامًا بسهولة من الشاشة الرئيسية مباشرةً. سيتم تغيير الاقتراحات استنادًا إلى سلاسل الإجراءات. سيتم نقل التطبيقات من الصف الأسفل إلى مجلد جديد."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"رؤية تطبيقات مقترحة"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"لا، شكرًا"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"الإعدادات"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"تظهر هنا التطبيقات الأكثر استخدامًا، ويستند التغيير إلى سلاسل الإجراءات."</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"يمكنك سحب التطبيقات من الصف الأسفل لتلقّي اقتراحات."</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"تمت إضافة التطبيقات المقترحة إلى مساحة فارغة."</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"تم تفعيل ميزة \"التطبيقات المقترحة\"."</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"ميزة \"التطبيقات المقترحة\" غير مفعّلة."</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"التطبيق المتوقع: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"مشاركة"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"لقطة شاشة"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"لا يسمح التطبيق أو لا تسمح مؤسستك بهذا الإجراء."</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"বিভাজিত স্ক্ৰীণ"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"পিন"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"অৱলোকন"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"কোনো শেহতীয়া বস্তু নাই"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"বন্ধ কৰক"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"এপে ব্যৱহাৰ কৰা ডেটাৰ ছেটিংসমূহ"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"সকলো মচক"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"শেহতীয়া এপসমূহ"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< ১ মিনিট"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"আজি <xliff:g id="TIME">%1$s</xliff:g> বাকী আছ"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"এপৰ পৰামৰ্শসমূহ"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"এপ চাজেশ্বন"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"সকলো এপ্"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"আপোনাৰ অনুমানিক এপ্"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"আপোনাৰ গৃহ স্ক্ৰীনৰ একেবাৰে তলৰ শাৰীটোত এপৰ পৰামর্শসমূহ পাওক"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"আপোনাৰ গৃহ স্ক্ৰীনৰ প্ৰিয় সমলৰ শাৰীটোত এপৰ পৰামর্শসমূহ পাওক"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"আপোনাৰ সকলোতকৈ বেছিকৈ ব্যৱহৃত এপ্সমূহ গৃহ স্ক্ৰীনতে সহজে এক্সেছ কৰক। আপোনাৰ ৰুটিনসমূহৰ ভিত্তিত পৰামর্শসমূহ সলনি হ\'ব। একেবাৰে তলৰ শাৰীটোত থকা এপ্সমূহ ওপৰৰ আপোনাৰ গৃহ স্ক্ৰীনলৈ যাব।"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"আপোনাৰ সকলোতকৈ বেছিকৈ ব্যৱহৃত এপ্সমূহ গৃহ স্ক্ৰীনতে সহজে এক্সেছ কৰক। আপোনাৰ ৰুটিনসমূহৰ ভিত্তিত পৰামর্শসমূহ সলনি হ’ব। প্ৰিয় সমলৰ শাৰীত থকা এপ্সমূহ আপোনাৰ গৃহ স্ক্রীনলৈ যাব।"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"আপোনাৰ সকলোতকৈ বেছিকৈ ব্যৱহৃত এপ্সমূহ গৃহ স্ক্ৰীনতে সহজে এক্সেছ কৰক। আপোনাৰ ৰুটিনসমূহৰ ভিত্তিত পৰামর্শসমূহ সলনি হ\'ব। একেবাৰে তলৰ শাৰীটোত থকা এপ্সমূহ এটা নতুন ফ\'ল্ডাৰলৈ যাব।"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"এপৰ পৰামর্শসমূহ পাওক"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"নালাগে, ধন্যবাদ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"ছেটিংসমূহ"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"সকলোতকৈ বেছিকৈ ব্যৱহৃত এপ্সমূহ ইয়াত প্ৰদর্শিত হয় আৰু ৰুটিনসমূহ ওপৰত ভিত্তি কৰি সলনি হয়"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"এপৰ পৰামর্শসমূহ পাবলৈ একেবাৰে তলৰ শাৰীত থকা এপ্সমূহ টানি আঁতৰাওক"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"খালী ঠাইত এপৰ পৰামর্শসমূহ যোগ কৰা হ\'ল"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"এপৰ পৰামৰ্শসমূহ সক্ষম কৰা আছে"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"এপৰ পৰামৰ্শসমূহ অক্ষম কৰা আছে"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"পূৰ্বানুমান কৰা এপ্: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"শ্বেয়াৰ কৰক"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"স্ক্ৰীনশ্বট"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"এপ্টোৱে অথবা আপোনাৰ প্ৰতিষ্ঠানে এই কাৰ্যটোৰ অনুমতি নিদিয়ে"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Bölünmüş ekran"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Sancın"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Sərbəst rejim"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"İcmal"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Son elementlər yoxdur"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Bağlayın"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Tətbiq istifadə ayarları"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Hamısını silin"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Son tətbiqlər"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Tətbiq təklifləri"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Bütün tətbiqlər"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Təklif edilən tətbiqlər"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Ana ekranın aşağı sırasında tətbiq təklifləri alın"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Ana ekranın sevimlilər sırasında tətbiq təklifləri alın"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Birbaşa Ana ekrandan ən çox istifadə edilən tətbiqlərə asanlıqla daxil olun. Təkliflər rejimlərinizə uyğun olaraq dəyişəcək. Aşağı sıradakı tətbiqlər Ana ekrana köçürüləcək."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Birbaşa Ana ekrandan ən çox işlədilən tətbiqlərə asanlıqla girin. Təkliflər rejimlərinizə uyğun olaraq dəyişəcək. Sevimlilər sırasındakı tətbiqlər Əsas ekrana köçürüləcək."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Birbaşa Əsas səhifədən ən çox istifadə edilən tətbiqlərə asanlıqla daxil olun. Təkliflər rejimlərinizə uyğun olaraq dəyişəcək. Aşağı sıradakı tətbiqlər yeni qovluğa köçürüləcək."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Tətbiq təklifləri əldə edin"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Yox, çox sağolun"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Ayarlar"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Ən çox istifadə edilən tətbiqlər burada görünür və rejimlərə uyğun olaraq dəyişir"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Tətbiq təklifləri əldə etmək üçün tətbiqləri aşağı sıradan kənara sürüşdürün"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Tətbiq təklifləri boş sahəyə əlavə edildi"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Tətbiq təklifləri aktivdir"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Tətbiq təklifləri deaktivdir"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Proqnozlaşdırılan tətbiq: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Paylaşın"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Ekran şəkli"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Bu əməliyyata tətbiq və ya təşkilatınız tərəfindən icazə verilmir"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Podeljeni ekran"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Zakači"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Slobodni oblik"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Pregled"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Nema nedavnih stavki"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Zatvori"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Podešavanja korišćenja aplikacije"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Obriši sve"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Nedavne aplikacije"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Predlozi aplikacija"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Sve aplikacije"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Predviđene aplikacije"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Dobijajte predloge aplikacija u donjem redu početnog ekrana"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Dobijajte predloge aplikacija u redu sa omiljenim stavkama na početnom ekranu"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Lako pristupajte aplikacijama koje najčešće koristite direktno sa početnog ekrana. Predlozi se menjaju na osnovu upotrebe. Aplikacije iz donjeg reda se premeštaju nagore na početni ekran."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Lako pristupajte aplikacijama koje najčešće koristite direktno sa početnog ekrana. Predlozi se menjaju na osnovu vaših rutina. Aplikacije iz reda sa omiljenim stavkama se premeštaju na početni ekran."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Lako pristupajte aplikacijama koje najčešće koristite direktno sa početnog ekrana. Predlozi se menjaju na osnovu upotrebe. Aplikacije iz donjeg reda se premeštaju u nov direktorijum."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Prikazuj predloge aplikacija"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ne, hvala"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Podešavanja"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Ovde se prikazuju najčešće korišćene aplikacije i menjaju se u zavisnosti od upotrebe"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Prevucite aplikacije iz donjeg reda da biste dobili predloge"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Predlozi aplikacija se dodaju na prazno mesto"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Predlozi aplikacija su omogućeni"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Predlozi aplikacija su onemogućeni"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predviđamo aplikaciju: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Deli"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Snimak ekrana"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Aplikacija ili organizacija ne dozvoljavaju ovu radnju"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Падзяліць экран"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Замацаваць"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Адвольная форма"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Агляд"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Няма новых элементаў"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Закрыць"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Налады выкарыстання праграмы"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Ачысціць усё"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Нядаўнія праграмы"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Прапановы праграм"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Усе праграмы"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Вашы праграмы з падказак"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Атрымлівайце прапановы праграм у ніжнім радку на Галоўным экране."</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Атрымлівайце прапановы праграм у пераліку абраных на Галоўным экране"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Атрымлiвайце доступ да праграм, якімі вы карыстаецеся найбольш часта, непасрэдна з Галоўнага экрана. Прапановы будуць змяняцца ў залежнасці ад вашых дзеянняў. Праграмы, якія знаходзяцца ў ніжнім радку, будуць перамешчаны на Галоўны экран."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Атрымлівайце доступ да праграм, якімі вы карыстаецеся найбольш часта, непасрэдна з Галоўнага экрана. Прапановы будуць змяняцца ў залежнасці ад вашых дзеянняў. Пералік абраных праграм будзе перамешчаны на Галоўны экран."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Атрымлiвайце просты доступ да праграм, якімі вы карыстаецеся найбольш часта, непасрэдна з Галоўнага экрана. Прапановы будуць змяняцца ў залежнасці ад вашых дзеянняў. Праграмы, якія знаходзяцца ў ніжнім радку, будуць перамешчаны ў новую папку."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Атрымаць прапановы праграм"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Не, дзякуй"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Налады"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Тут з\'яўляюцца праграмы, якімі вы карыстаецеся найбольш часта. Гэты спіс змяняецца на падставе вашых дзеянняў"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Перацягніце праграмы з ніжняга радка, каб атрымаць прапановы праграм"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Прапановы праграм дададзены на свабоднае месца"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Прапановы праграм уключаны"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Прапановы праграм выключаны"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Праграма з падказкі: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Абагуліць"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Здымак экрана"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Гэта дзеянне не дазволена праграмай ці вашай арганізацыяй"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Разделен екран"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Фиксиране"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Свободна форма"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Общ преглед"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Няма скорошни елементи"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Затваряне"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Настройки за използването на приложенията"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Изчистване на всички"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Скорошни приложения"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Предложения за приложения"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Всички приложения"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Предвидени приложения"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Получавайте предложения за приложения на най-долния ред на началния си екран"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Получаване на предложения за приложения в реда с любими на началния екран"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Осъществявайте лесен достъп до най-използваните от вас приложения директно от началния екран. Предложенията ще се променят въз основа на действията ви. Приложенията на най-долния ред ще се преместят на началния ви екран."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Осъществявайте лесен достъп до най-използваните от вас приложения директно от началния екран. Предложенията ще се променят въз основа на действията ви. Приложенията в реда с любими ще бъдат преместени на началния екран."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Осъществявайте лесен достъп до най-използваните от вас приложения директно от началния екран. Предложенията ще се променят въз основа на действията ви. Приложенията на най-долния ред ще се преместят в нова папка."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Предложения"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Не, благодаря"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Настройки"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Най-използваните приложения се показват тук и се променят въз основа на поредиците"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"За да получавате предложения за приложения, с плъзгане премахнете приложенията от най-долния ред"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Предложенията за приложения са добавени на празното място"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Предложенията за приложения са активирани"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Функцията „Предложения за приложения“ е деактивирана"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Предвидено приложение: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Споделяне"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Екранна снимка"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Това действие не е разрешено от приложението или организацията ви"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"স্ক্রিন স্প্লিট করুন"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"পিন করুন"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"ফ্রি-ফর্ম"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"এক নজরে"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"কোনো সাম্প্রতিক আইটেম নেই"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"বন্ধ করুন"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"অ্যাপ ব্যবহারের সেটিংস"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"সবকিছু খালি করুন"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"সম্প্রতি ব্যবহৃত অ্যাপ"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"অ্যাপের সাজেশন"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"সব অ্যাপ"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"আপনার প্রয়োজন হতে পারে এমন অ্যাপ"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"আপনার হোম স্ক্রিনের নিচে সারিতে অ্যাপ সাজেশন পান"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"হোম স্ক্রিনের \'ফেভারিট রো\' বিকল্পের জন্য অ্যাপ সাজেশন পান"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"হোম স্ক্রিন থেকে সরাসরি সব থেকে বেশি ব্যবহার করা অ্যাপগুলি অ্যাক্সেস করুন। আপনার রুটিনের উপর ভিত্তি করে সাজেশন পরির্তন করা হবে। নিচের সারিতে থাকা অ্যাপ আপনার হোম স্ক্রিনে সরানো হবে।"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"খুব বেশি ব্যবহার করেন এমন অ্যাপগুলি হোম স্ক্রিন থেকে সহজে সরাসরি অ্যাক্সেস করুন। আপনার রুটিন অনুযায়ী সাজেশন পরির্তন করা হবে। \'ফেভারিট রো\' বিকল্পে থাকা অ্যাপগুলি হোম স্ক্রিনে সরিয়ে দেওয়া হবে।"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"হোম স্ক্রিনের পাশে সব থেকে ব্যবহার করা অ্যাপ সহজেই অ্যাক্সেস করুন। আপনার রুটিনের উপর ভিত্তি করে সাজেশন পরির্তন করা হবে। নিচের সারিতে থাকা অ্যাপ নতুন ফোল্ডারে সরানো হবে।"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"অ্যাপ সাজেশন পান"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"না থাক"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"সেটিংস"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"সব থেকে বেশি ব্যবহার করা অ্যাপ এখানে দেখানো হয় এবং রুটিনের উপর ভিত্তি করে পরিবর্তন হতে পারে"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"অ্যাপ সাজেশন পেতে নিচের সারিতে অ্যাপগুলি টেনে আনুন"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"খালি জায়গাতে অ্যাপ সাজেশন যোগ করা হয়েছে"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"অ্যাপ সাজেশন চালু করা আছে"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"অ্যাপ সাজেশন বন্ধ করা আছে"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"আপনার প্রয়োজন হতে পারে এমন অ্যাপ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"শেয়ার করুন"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"স্ক্রিনশট নিন"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"এই অ্যাপ বা আপনার প্রতিষ্ঠান এই অ্যাকশনটি পারফর্ম করার অনুমতি দেয়নি"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Način rada podijeljenog ekrana"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Zakači"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Slobodan oblik"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Pregled"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Nema nedavnih stavki"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Zatvaranje"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Postavke korištenja aplikacije"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Obriši sve"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Nedavne aplikacije"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 min"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Preostalo vrijeme: <xliff:g id="TIME">%1$s</xliff:g>"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Prijedlozi za aplikacije"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Prijedlozi aplikacija"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Sve aplikacije"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Predviđene aplikacije"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Primajte prijedloge aplikacija u donjem redu početnog ekrana"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Primajte prijedloge aplikacija u redu omiljenih stavki početnog ekrana"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Jednostavno pristupite najčešće korištenim aplikacijama direktno na početnom ekranu. Prijedlozi će se mijenjati na osnovu vaših rutina. Aplikacije koje se nalaze u donjem redu će se premjestiti na početni ekran."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Jednostavno pristupite najčešće korištenim aplikacijama direktno na početnom ekranu. Prijedlozi će se mijenjati na osnovu vaših rutina. Aplikacije u redu omiljenih stavki će se premjestiti na početni ekran."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Jednostavno pristupite najčešće korištenim aplikacijama, direktno na početnom ekranu. Prijedlozi će se mijenjati na osnovu vaših rutina. Aplikacije koje se nalaze u donjem redu će se premjestiti u novi folder."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Prikaži prijedloge aplikacija"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ne, hvala"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Postavke"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Ovdje se prikazuju najčešće korištene aplikacije i njihov prikaz se mijenja na osnovu rutina"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Prevucite aplikacije iz donjeg reda da dobijete prijedloge aplikacija"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Prijedlozi aplikacija su dodani u prazan prostor"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Prijedlozi aplikacija su omogućeni"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Prijedlozi aplikacija su onemogućeni"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predviđena aplikacija: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Dijeli"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Snimak ekrana"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Ovu radnju ne dozvoljava aplikacija ili vaša organizacija"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Pantalla dividida"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fixa"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Format lliure"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Aplicacions recents"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No hi ha cap element recent"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Tanca"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Configuració d\'ús d\'aplicacions"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Esborra-ho tot"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Aplicacions recents"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Suggeriments d\'aplicacions"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Totes les aplicacions"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Prediccions d\'aplicacions"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Obtén suggeriments d\'aplicacions a la fila inferior de la pantalla d\'inici"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Obtén suggeriments d\'aplicacions a la fila Preferides de la teva pantalla d\'inici"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Accedeix fàcilment a les aplicacions que més utilitzes des de la pantalla d\'inici. Els suggeriments variaran en funció dels teus hàbits. Les aplicacions de la fila inferior pujaran a la pantalla d\'inici."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Accedeix fàcilment a les aplicacions que més utilitzes des de la pantalla d\'inici. Els suggeriments variaran en funció dels teus hàbits. Les aplicacions de la fila Preferides es mouran a la teva pantalla d\'inici."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Accedeix fàcilment a les aplicacions que més utilitzes des de la pantalla d\'inici. Els suggeriments variaran en funció dels teus hàbits. Les aplicacions de la fila inferior es mouran a una carpeta nova."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Mostra suggeriments d\'aplicacions"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, gràcies"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Configuració"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Les aplicacions que més utilitzes apareixen aquí i poden variar en funció dels teus hàbits"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Arrossega les aplicacions fora de la fila inferior per obtenir suggeriments d\'aplicacions"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"S\'han afegit suggeriments d\'aplicacions en un espai buit"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Els suggeriments d\'aplicacions estan activats"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Els suggeriments d\'aplicacions estan desactivats"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicció d\'aplicació: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Comparteix"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Captura de pantalla"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"L\'aplicació o la teva organització no permeten aquesta acció"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Rozdělená obrazovka"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"PIN"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Neomezený režim"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Přehled"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Žádné nedávné položky"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Zavřít"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Nastavení využití aplikací"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Vymazat vše"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Poslední aplikace"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Návrhy aplikací"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Všechny aplikace"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Vaše předpovídané aplikace"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Nechte si ve spodním řádku na ploše zobrazovat návrhy aplikací"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Nechte si na řádku oblíbených na ploše zobrazovat návrhy aplikací"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Mějte nejpoužívanější aplikace k dispozici přímo na ploše. Návrhy se budou měnit v závislosti na sledech činností. Aplikace ve spodním řádku se přesunou na vaši plochu."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Mějte nejpoužívanější aplikace k dispozici přímo na ploše. Návrhy se budou měnit v závislosti na sledech činností. Aplikace na řádku oblíbených se přesunou na plochu."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Mějte nejpoužívanější aplikace k dispozici přímo na ploše. Návrhy se budou měnit v závislosti na sledech činností. Aplikace ve spodním řádku se přesunou do nové složky."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Zobrazovat návrhy aplikací"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ne, díky"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Nastavení"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Zde se zobrazují nejpoužívanější aplikace (které se mění podle sledů činností)"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Chcete-li získat návrhy aplikací, přetáhněte aplikace z dolního řádku"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Volné místo bylo vyplněno návrhy aplikací"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Návrhy aplikací jsou povoleny"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Návrhy aplikací jsou zakázány"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Předpokládaná aplikace: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Sdílet"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Snímek obrazovky"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Aplikace nebo organizace zakazuje tuto akci"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Opdel skærm"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fastgør"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Frit format"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Oversigt"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Ingen nye elementer"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Luk"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Indstillinger for appforbrug"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Ryd alt"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Seneste apps"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Appforslag"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Alle apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Dine foreslåede apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Få appforslag på den nederste række af din startskærm"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Få appforslag i rækken med favoritter på din startskærm"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Få nem adgang til dine mest brugte apps direkte fra startskærmen. Forslagene ændres ud fra dine vaner. Apps i nederste række bliver flyttet op til din startskærm."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Få nem adgang til dine mest brugte apps direkte fra startskærmen. Forslagene ændres ud fra dine vaner. Apps i rækken med favoritter bliver flyttet til din startskærm."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Få nem adgang til dine mest brugte apps direkte fra startskærmen. Forslagene ændres ud fra dine vaner. Apps i nederste række bliver flyttet til en ny mappe."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Få appforslag"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Nej tak"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Indstillinger"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"De mest brugte apps vises her, og visningen ændres ud fra dine vaner"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Træk apps væk fra den nederste række for at få appforslag"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Appforslag blev føjet til tom plads"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Appforslag er aktiveret"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Appforslag er deaktiveret"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"App, du forventes at skulle bruge: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Del"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Appen eller din organisation tillader ikke denne handling"</string>
|
||||
</resources>
|
||||
|
|
|
@ -20,18 +20,33 @@
|
|||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Splitscreen"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Anpinnen"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fixieren"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform-Modus"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Übersicht"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Keine kürzlich verwendeten Elemente"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Schließen"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Einstellungen zur App-Nutzung"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Alle Apps schließen"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Zuletzt aktive Apps"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 min"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 Min."</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Heute noch <xliff:g id="TIME">%1$s</xliff:g>"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"App-Vorschläge"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Alle Apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"App-Vorschläge für dich"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Lass dir in der unteren Reihe auf deinem Startbildschirm Vorschläge für Apps anzeigen"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Lass dir in der Favoritenleiste auf dem Startbildschirm App-Vorschläge anzeigen"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Schneller Zugriff auf deine meistverwendeten Apps direkt über den Startbildschirm. Die Vorschläge werden deiner Nutzung entsprechend laufend angepasst. Apps in der unteren Reihe werden nach oben auf den Startbildschirm verschoben."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Schneller Zugriff auf deine meistverwendeten Apps direkt über den Startbildschirm. Die Vorschläge werden deiner Nutzung entsprechend laufend angepasst. Apps der Favoritenleiste werden auf den Startbildschirm verschoben."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Schneller Zugriff auf deine meistverwendeten Apps direkt über den Startbildschirm. Die Vorschläge werden deiner Nutzung entsprechend laufend angepasst. Apps in der unteren Reihe werden in einen neuen Ordner verschoben."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"App-Vorschläge erhalten"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Nein danke"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Einstellungen"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Hier erscheinen die meistverwendeten Apps. Die Angaben können sich je nach deiner gewöhnlichen Nutzung ändern"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Ziehe Apps aus der unteren Reihe heraus, um Vorschläge für Apps zu erhalten"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App-Vorschläge in freiem Bereich hinzugefügt"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Funktion \"App-Vorschläge\" aktiviert"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Funktion \"App-Vorschläge\" deaktiviert"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Vorgeschlagene App: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Teilen"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Die App oder deine Organisation lässt diese Aktion nicht zu"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Διαχωρισμός οθόνης"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Καρφίτσωμα"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Ελεύθερη μορφή"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Επισκόπηση"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Δεν υπάρχουν πρόσφατα στοιχεία"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Κλείσιμο"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Ρυθμίσεις χρήσης εφαρμογής"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Διαγραφή όλων"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Πρόσφατες εφαρμογές"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 λ."</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Απομένουν <xliff:g id="TIME">%1$s</xliff:g> σήμερα"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Προτάσεις εφαρμογών"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Προτεινόμενες εφαρμογές"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Όλες οι εφαρμογές"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Προβλέψεις εφαρμογών"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Δείτε τις προτεινόμενες εφαρμογές στην κάτω σειρά της αρχικής οθόνης"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Δείτε τις προτεινόμενες εφαρμογές στη σειρά Αγαπημένα της αρχικής οθόνης."</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Αποκτήστε εύκολα πρόσβαση στις εφαρμογές που χρησιμοποιείτε περισσότερο απευθείας από την αρχική οθόνη. Οι προτάσεις θα αλλάζουν με βάση τις ρουτίνες σας. Οι εφαρμογές στην κάτω σειρά θα μετακινηθούν προς τα επάνω στην αρχική οθόνη."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Αποκτήστε εύκολα πρόσβαση στις εφαρμογές που χρησιμοποιείτε περισσότερο απευθείας από την αρχική οθόνη. Οι προτάσεις θα αλλάζουν με βάση τις ρουτίνες σας. Οι εφαρμογές στην σειρά Αγαπημένα θα μετακινηθούν στην αρχική οθόνη σας."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Αποκτήστε εύκολα πρόσβαση στις εφαρμογές που χρησιμοποιείτε περισσότερο, απευθείας από την αρχική οθόνη. Οι προτάσεις θα αλλάζουν με βάση τις ρουτίνες σας. Οι εφαρμογές στην κάτω σειρά θα μεταφερθούν σε νέο φάκελο."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Προβολή προτεινόμενων εφαρμογών"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Όχι, ευχαριστώ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Ρυθμίσεις"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Οι εφαρμογές που χρησιμοποιείτε περισσότερο εμφανίζονται εδώ και αλλάζουν με βάση τις ρουτίνες"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Σύρετε εφαρμογές μακριά από την κάτω σειρά, για να δείτε τις προτεινόμενες εφαρμογές"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Οι προτεινόμενες εφαρμογές προστέθηκαν στον κενό χώρο"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Οι προτεινόμενες εφαρμογές ενεργοποιήθηκαν"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Οι προτεινόμενες εφαρμογές είναι απενεργοποιημένες"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Εφαρμογή από πρόβλεψη: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Κοινοποίηση"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Στιγμιότυπο οθόνης"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Αυτή η ενέργεια δεν επιτρέπεται από την εφαρμογή ή τον οργανισμό σας."</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Split screen"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Pin"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Overview"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No recent items"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Close"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"App usage settings"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Clear all"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Recent apps"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"App suggestions"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"All apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Your predicted apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Get app suggestions on the bottom row of your home screen"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Get app suggestions on the favourites row of your home screen"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will move up to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps in the favourites row will move to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will be moved to a new folder."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Get app suggestions"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, thanks"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Settings"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Most-used apps appear here, and change based on routines"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Drag apps off the bottom row to get app suggestions"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App suggestions added to empty space"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"App suggestions enabled"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"App suggestions are disabled"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Share"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"This action isn\'t allowed by the app or your organisation"</string>
|
||||
</resources>
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
/*
|
||||
* Copyright (C) 2017 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Split screen"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Pin"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No recent items"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"App usage settings"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Clear all"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Recent apps"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 minute"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"<xliff:g id="TIME">%1$s</xliff:g> left today"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"App suggestions"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"All apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Your predicted apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Get app suggestions on the bottom row of your home screen"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Get app suggestions on the favourites row of your home screen"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will move up to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps in the favourites row will move to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will be moved to a new folder."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Get app suggestions"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, thanks"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Settings"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Most-used apps appear here, and change based on routines"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Drag apps off the bottom row to get app suggestions"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App suggestions added to empty space"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"App suggestions enabled"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"App suggestions are disabled"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Share"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"This action isn\'t allowed by the app or your organisation"</string>
|
||||
</resources>
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Split screen"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Pin"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Overview"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No recent items"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Close"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"App usage settings"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Clear all"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Recent apps"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"App suggestions"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"All apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Your predicted apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Get app suggestions on the bottom row of your home screen"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Get app suggestions on the favourites row of your home screen"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will move up to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps in the favourites row will move to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will be moved to a new folder."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Get app suggestions"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, thanks"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Settings"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Most-used apps appear here, and change based on routines"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Drag apps off the bottom row to get app suggestions"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App suggestions added to empty space"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"App suggestions enabled"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"App suggestions are disabled"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Share"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"This action isn\'t allowed by the app or your organisation"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Split screen"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Pin"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Overview"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No recent items"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Close"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"App usage settings"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Clear all"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Recent apps"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"App suggestions"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"All apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Your predicted apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Get app suggestions on the bottom row of your home screen"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Get app suggestions on the favourites row of your home screen"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will move up to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps in the favourites row will move to your home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Easily access your most-used apps directly from the home screen. Suggestions will change based on your routines. Apps on the bottom row will be moved to a new folder."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Get app suggestions"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, thanks"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Settings"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Most-used apps appear here, and change based on routines"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Drag apps off the bottom row to get app suggestions"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App suggestions added to empty space"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"App suggestions enabled"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"App suggestions are disabled"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Share"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"This action isn\'t allowed by the app or your organisation"</string>
|
||||
</resources>
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
/*
|
||||
* Copyright (C) 2017 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Split screen"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Pin"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No recent items"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"App usage settings"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Clear all"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Recent apps"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 minute"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"<xliff:g id="TIME">%1$s</xliff:g> left today"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"App suggestions"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"All apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Your predicted apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Get app suggestions on the bottom row of your Home screen"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Get app suggestions on favorites row of your Home screen"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Easily access your most-used apps right on the Home screen. Suggestions will change based on your routines. Apps on the bottom row will move up to your Home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Easily access your most-used apps right on the Home screen. Suggestions will change based on your routines. Apps in favorites row will move to your Home screen."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Easily access your most-used apps, right on the Home screen. Suggestions will change based on your routines. Apps on the bottom row will move to a new folder."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Get app suggestions"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No thanks"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Settings"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Most-used apps appear here, and change based on routines"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Drag apps off the bottom row to get app suggestions"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App suggestions added to empty space"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"App suggestions enabled"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"App suggestions are disabled"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Share"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"This action isn\'t allowed by the app or your organization"</string>
|
||||
</resources>
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Pantalla dividida"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fijar"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Formato libre"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Recientes"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No hay elementos recientes"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Cerrar"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Configuración de uso de la app"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Borrar todo"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Apps recientes"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g> (<xliff:g id="REMAINING_TIME">%2$s</xliff:g>)"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 minuto"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Tiempo restante: <xliff:g id="TIME">%1$s</xliff:g>"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Sugerencias de apps"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Sugerencias de aplicaciones"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Todas las apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Predicción de tus apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Obtén sugerencias de aplicaciones en la fila inferior de la pantalla principal"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Obtén sugerencias de apps en la fila de favoritos de la pantalla principal"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Accede fácilmente en la pantalla principal a las apps que más usas. Las sugerencias cambiarán según tus rutinas. Las apps de la fila inferior se desplazarán hacia arriba en la pantalla principal."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Accede fácilmente en la pantalla principal a las apps que más usas. Las sugerencias cambiarán según tus rutinas. Se moverán a la pantalla principal las apps que estén en la fila de favoritos."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Accede fácilmente a las apps que más usas en la pantalla principal. Las sugerencias cambiarán según tus rutinas. Las apps de la fila inferior se moverán a una nueva carpeta."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Obtén sugerencias de aplicaciones"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, gracias"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Configuración"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Las apps que más se usan se muestran aquí y cambian según las rutinas"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Arrastra apps fuera de la fila inferior para obtener sugerencias"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Se agregaron sugerencias de aplicaciones a un espacio vacío"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Sugerencias de apps habilitadas"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Las sugerencias de aplicaciones están inhabilitadas"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicción de app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Compartir"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Captura de pantalla"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"La app o tu organización no permiten realizar esta acción"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Dividir pantalla"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fijar"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Formato libre"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Aplicaciones recientes"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No hay elementos recientes"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Cerrar"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"No hay nada reciente"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Ajustes de uso de la aplicación"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Borrar todo"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Aplicaciones recientes"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Sugerencias de aplicaciones"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Todas las aplicaciones"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Predicción de aplicaciones"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Obtén sugerencias de aplicaciones en la fila inferior de la pantalla de inicio"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Recibe sugerencias de aplicaciones en la fila de aplicaciones favoritas de la pantalla de inicio"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Accede fácilmente a las aplicaciones que más usas desde la pantalla de inicio. Las sugerencias cambiarán según tus hábitos. Las aplicaciones de la fila inferior pasarán a mostrarse en la pantalla de inicio."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Accede fácilmente a las aplicaciones que más usas desde la pantalla de inicio. Las sugerencias cambiarán según tus hábitos. Las aplicaciones de la fila de aplicaciones favoritas se moverán a la pantalla de inicio."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Accede fácilmente a las aplicaciones que más usas desde la pantalla de inicio. Las sugerencias cambiarán según tus hábitos. Las aplicaciones de la fila inferior se pondrán en una carpeta nueva."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Sí, obtener sugerencias"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, gracias"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Ajustes"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Las aplicaciones que más usas aparecen aquí, y van variando según tus rutinas"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Arrastra aplicaciones de la fila inferior para ver sugerencias de aplicaciones"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Sugerencias de aplicaciones añadidas a espacios vacíos"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Sugerencias de aplicaciones habilitadas"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Las sugerencias de aplicaciones están inhabilitadas"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplicación sugerida: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Compartir"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Hacer captura"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"No puedes hacerlo porque la aplicación o tu organización no lo permiten"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Jagatud ekraan"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Kinnita"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Vabavorm"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ülevaade"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Hiljutisi üksusi pole"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Sule"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Rakenduse kasutuse seaded"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Sule kõik"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Hiljutised rakendused"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Rakenduste soovitused"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Kõik rakendused"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Teie ennustatud rakendused"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Hankige avakuva alumisel real rakenduste soovitusi"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Hankige avakuva lemmikute reale rakenduste soovitusi"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Pääsete enim kasutatavatele rakendustele hõlpsasti juurde otse avakuvalt. Soovitused muutuvad olenevalt teie rutiinist. Alumisel real olevad rakendused teisaldatakse teie avakuvale."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Pääsete enim kasutatavatele rakendustele hõlpsasti juurde otse avakuvalt. Soovitused muutuvad olenevalt teie rutiinist. Lemmikute real olevad rakendused teisaldatakse teie avakuvale."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Pääsete enim kasutatavatele rakendustele hõlpsasti juurde otse avakuvalt. Soovitused muutuvad olenevalt teie rutiinist. Alumisel real olevad rakendused teisaldatakse uude kausta."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Hangi rakenduste soovitusi"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Tänan, ei"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Seaded"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Siin kuvatakse enim kasutatavad rakendused, mis võivad olenevalt rutiinist muutuda."</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Rakenduste soovituste hankimiseks lohistage rakendused alumiselt realt ära"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Rakenduste soovitused lisati tühjale kohale"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Rakenduste soovitused on lubatud"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Rakenduste soovitused on keelatud"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Ennustatud rakendus: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Jaga"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Ekraanipilt"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Rakendus või teie organisatsioon on selle toimingu keelanud"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Zatitu pantaila"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Ainguratu"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Modu librea"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ikuspegi orokorra"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Ez dago azkenaldi honetako ezer"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Itxi"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Aplikazioen erabileraren ezarpenak"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Garbitu guztiak"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Azken aplikazioak"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g> (<xliff:g id="REMAINING_TIME">%2$s</xliff:g>)"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 min"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"<xliff:g id="TIME">%1$s</xliff:g> gelditzen dira gaur"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Iradokitako aplikazioak"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Aplikazioen iradokizunak"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Aplikazio guztiak"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Lagungarri izan dakizkizukeen aplikazioak"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Jaso aplikazioen iradokizunak hasierako pantailaren beheko errenkadan"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Jaso aplikazioen iradokizunak hasierako pantailako gogokoen errenkadan"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Atzitu erraz aplikazio erabilienak hasierako pantailatik bertatik. Ohituren arabera aldatuko dira iradokizunak. Hasierako pantailara eramango dira beheko errenkadan dauden aplikazioak."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Atzitu erraz aplikazio erabilienak hasierako pantailatik bertatik. Ohituren arabera aldatuko dira iradokizunak. Gogokoen errenkadako aplikazioak hasierako pantailara eramango ditugu."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Atzitu erraz aplikazio erabilienak hasierako pantailatik bertatik. Ohituren arabera aldatuko dira iradokizunak. Karpeta berri batera eramango dira beheko errenkadan dauden aplikazioak."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Jaso aplikazioen iradokizunak"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ez"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Ezarpenak"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Hemen agertzen dira aplikazio erabilienak, eta ohituren arabera aldatzen dira"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Arrastatu aplikazioak beheko errenkadatik aplikazioen iradokizunak jasotzeko"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Aplikazioen iradokizunak eremu huts batean gehitu dira"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Gaituta daude aplikazioen iradokizunak"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Desgaituta daude aplikazioen iradokizunak"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Iragarritako aplikazioa: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Partekatu"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Atera pantaila-argazki bat"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Aplikazioak edo erakundeak ez du eman ekintza hori gauzatzeko baimena"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"تقسیم صفحه"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"پین"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"نمای کلی"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"بدون موارد اخیر"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"بستن"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"تنظیمات استفاده از برنامه"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"پاک کردن همه"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"برنامههای اخیر"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>، <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< ۱ دقیقه"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"<xliff:g id="TIME">%1$s</xliff:g> باقیمانده برای امروز"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"برنامههای پیشنهادی"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"پیشنهادهای برنامه"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"همه برنامهها"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"برنامههای پیشبینیشده"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"دریافت پیشنهادهای برنامه در ردیف پایین صفحه اصلی"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"دریافت «پیشنهاد برنامه» در ردیف موارد دلخواه صفحه اصلی"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"بهراحتی در صفحه اصلی به پرکاربردترین برنامهها دسترسی داشته باشید. پیشنهادها براساس روالهایتان تغییر خواهد کرد. برنامههای ردیف پایین در صفحه اصلی به بالا منتقل خواهند شد."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"بهراحتی در صفحه اصلی به پرکاربردترین برنامهها دسترسی داشته باشید. پیشنهادها براساس روالهایتان تغییر خواهد کرد. برنامههای موجود در ردیف موارد دلخواه به صفحه اصلی منتقل میشوند."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"بهراحتی در صفحه اصلی به پرکاربردترین برنامهها دسترسی داشته باشید. پیشنهادها براساس روالهایتان تغییر خواهد کرد. برنامههای ردیف پایین به پوشه جدیدی منتقل خواهند شد."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"دریافت پیشنهادهای برنامه"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"نه متشکرم"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"تنظیمات"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"پرکاربردترین برنامهها اینجا ظاهر میشوند و براساس روالها تغییر میکنند"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"برای دریافت پیشنهادهای برنامه، برنامهها را به بیرون از ردیف پایین بکشید"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"«پیشنهاد برنامه» به فضای خالی اضافه شد"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"«پیشنهاد برنامه» فعال است"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"«پیشنهاد برنامه» غیرفعال است"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"برنامه پیشبینیشده: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"همرسانی"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"نماگرفت"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"برنامه یا سازمان شما اجازه نمیدهد این کنش انجام شود."</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Jaettu näyttö"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Kiinnitä"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Vapaamuotoinen"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Viimeisimmät"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Ei viimeaikaisia kohteita"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Sulje"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Sovelluksen käyttöasetukset"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Poista kaikki"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Viimeisimmät sovellukset"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Sovellusehdotukset"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Kaikki sovellukset"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Sovellusennusteet"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Näytä sovellusehdotuksia aloitusnäytön alimmaisella rivillä"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Näytä sovellusehdotuksia aloitusnäytön Suosikit-rivillä"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Voit avata käytetyimmät sovellukset kätevästi aloitusnäytöltä. Ehdotukset muuttuvat rutiiniesi perusteella. Alimmaisella rivillä olevat sovellukset siirretään aloitusnäytön yläosaan."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Voit avata käytetyimmät sovellukset kätevästi aloitusnäytöltä. Ehdotukset muuttuvat rutiiniesi perusteella. Suosikit-rivillä olevat sovellukset siirretään aloitusnäytölle."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Voit avata käytetyimmät sovellukset kätevästi aloitusnäytöltä. Ehdotukset muuttuvat rutiiniesi perusteella. Alimmaisella rivillä olevat sovellukset siirretään uuteen kansioon."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Näytä sovellusehdotuksia"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ei kiitos"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Asetukset"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Käytetyimmät sovellukset näkyvät täällä ja muuttuvat rutiiniesi perusteella"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Siirrä sovelluksia pois alimmaiselta riviltä, niin voit saada sovellusehdotuksia"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Sovellusehdotuksia lisätty tyhjään kohtaan"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Sovellusehdotukset käytössä"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Sovellusehdotukset on poistettu käytöstä"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Ennakoitu sovellus: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Jaa"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Kuvakaappaus"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Sovellus tai organisaatio ei salli tätä toimintoa"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Écran divisé"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Épingler"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Forme libre"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Aperçu"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Aucun élément récent"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Fermer"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Paramètres d\'utilisation de l\'application"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Tout effacer"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Applications récentes"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Suggestions d\'applications"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Toutes les applications"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Vos prédictions d\'applications"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Obtenir des suggestions d\'applications dans la rangée du bas de votre écran d\'accueil"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Retrouvez des suggestions d\'applications dans la rangée des favoris de votre écran d\'accueil"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Accédez facilement aux applications que vous utilisez le plus, directement à l\'écran d\'accueil. Les suggestions changeront en fonction de vos habitudes. Les applications dans la rangée du bas seront déplacées vers votre écran d\'accueil."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Accédez facilement aux applications que vous utilisez le plus, directement à l\'écran d\'accueil. Les suggestions changeront en fonction de vos habitudes. Les applications dans la rangée des favoris seront déplacées vers votre écran d\'accueil."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Accédez facilement aux applications que vous utilisez le plus, directement à l\'écran d\'accueil. Les suggestions changeront en fonction de vos habitudes. Les applications dans la rangée du bas seront déplacées vers un nouveau dossier."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Obtenir des suggestions d\'applications"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Non merci"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Paramètres"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Les applications les plus utilisées s\'affichent ici et changent en fonction des habitudes"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Faites glisser des applications hors de la rangée du bas pour obtenir des suggestions d\'applications"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Applications suggérées ajoutées à l\'espace vide"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Les suggestions d\'applications sont activées"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Les suggestions d\'applications sont désactivées"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Application prédite : <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Partager"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Capture d\'écran"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"L\'application ou votre organisation n\'autorise pas cette action"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Écran partagé"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Épingler"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Format libre"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Aperçu"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Aucun élément récent"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Fermer"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Paramètres de consommation de l\'application"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Tout effacer"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Applications récentes"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 min"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Encore <xliff:g id="TIME">%1$s</xliff:g> aujourd\'hui"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Suggestions d\'applications"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Applications suggérées"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Toutes les applications"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Applications prévues pour vous"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Retrouvez vos applications favorites au bas de votre écran d\'accueil"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Retrouvez des suggestions d\'applications dans la zone des favoris de votre écran d\'accueil"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Les suggestions d\'applications permettent d\'afficher vos applications favorites au bas de votre écran d\'accueil. Elles s\'adaptent à vos habitudes d\'utilisation. Les icônes auparavant affichées au bas de l\'écran seront déplacées vers le haut."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Accédez facilement aux applications dont vous vous servez le plus, directement depuis l\'écran d\'accueil. Ces suggestions peuvent varier en fonction de vos habitudes d\'utilisation. Les applications de la zone des favoris seront transférées sur votre écran d\'accueil."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Les suggestions d\'applications permettent d\'afficher vos applications favorites au bas de votre écran d\'accueil. Elles s\'adaptent à vos habitudes d\'utilisation. Les icônes auparavant affichées au bas de l\'écran seront placées dans un nouveau dossier."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Activer les suggestions"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Non, merci"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Paramètres"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Les applications dont vous vous servez le plus s\'affichent ici (ces suggestions peuvent varier en fonction de vos habitudes d\'utilisation)"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Faites glisser des applications hors de la rangée du bas pour obtenir des suggestions d\'applications"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Des suggestions d\'applications ont été ajoutées à un emplacement vide"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Suggestions d\'applications activées"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Les suggestions d\'applications sont désactivées"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Application prédite : <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Partager"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Capture d\'écran"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Cette action n\'est pas autorisée par l\'application ou par votre organisation"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Pantalla dividida"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fixar"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Forma libre"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Visión xeral"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Non hai elementos recentes"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Pecha a aplicación"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Configuración do uso de aplicacións"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Borrar todo"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Apps recentes"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Suxestións de aplicacións"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Todas as aplicacións"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"As túas aplicacións preditas"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Recibe suxestións de aplicacións na fila inferior da pantalla de inicio"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Recibe suxestións de aplicacións na fila de Favoritos da pantalla de inicio"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Accede facilmente desde a pantalla de inicio ás aplicacións que máis usas. As suxestións irán cambiando en función das túas rutinas. As aplicacións da fila inferior pasarán á pantalla de inicio."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Accede facilmente desde a pantalla de inicio ás aplicacións que máis usas. As suxestións irán cambiando en función das túas rutinas. As aplicacións da fila de Favoritos moveranse á túa pantalla de inicio."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Accede facilmente desde a pantalla de inicio ás aplicacións que máis usas. As suxestións irán cambiando en función das túas rutinas. As aplicacións da fila inferior pasarán a un cartafol novo."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Recibir suxestións de aplicacións"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Non, grazas"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Configuración"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"As aplicacións máis usadas aparecen aquí e van cambiando en función das túas rutinas"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Arrastra aplicacións desde a fila inferior para recibir suxestións de aplicacións"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Engadíronse suxestións de aplicacións ao espazo baleiro"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"As suxestións de aplicacións están activadas"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"As suxestións de aplicacións están desactivadas"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplicación predita: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Compartir"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Facer captura"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"A aplicación ou a túa organización non permite realizar esta acción"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"સ્ક્રીનને વિભાજિત કરો"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"પિન કરો"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"ફ્રિફોર્મ"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ઝલક"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"તાજેતરની કોઈ આઇટમ નથી"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"બંધ કરો"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"ઍપ વપરાશનું સેટિંગ"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"બધું સાફ કરો"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"તાજેતરની ઍપ"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"ઍપ સૂચનો"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"બધી ઍપ"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"તમારી પૂર્વાનુમાનિત ઍપ"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"તમારી હોમ સ્ક્રીનની નીચલી પંક્તિમાં ઍપના સુઝાવો મેળવો"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"તમારી હોમ સ્ક્રીનની મનપસંદ પંક્તિમાં ઍપના સુઝાવો મેળવો"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"તમારી સૌથી વધુ વપરાતી ઍપને સીધી હોમ સ્ક્રીન પરથી જ સરળતાથી ઍક્સેસ કરો. સૂચનો તમારા રૂટિનના આધારે બદલાશે. નીચેની પંક્તિમાં રહેલી ઍપ તમારી હોમ સ્ક્રીન પર ખસેડાશે."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"તમારી સૌથી વધુ વપરાતી ઍપને સીધી હોમ સ્ક્રીન પરથી જ સરળતાથી ઍક્સેસ કરો. સૂચનો તમારા રૂટિનના આધારે બદલાશે. મનપસંદ પંક્તિમાં રહેલી ઍપ તમારી હોમ સ્ક્રીન પર ખસેડાશે."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"તમારી સૌથી વધુ વપરાતી ઍપને સીધી હોમ સ્ક્રીન પરથી જ સરળતાથી ઍક્સેસ કરો. સૂચનો તમારા રૂટિનના આધારે બદલાશે. નીચેની પંક્તિમાં રહેલી ઍપ નવા ફોલ્ડરમાં ખસેડાશે."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"ઍપ અંગેના સુઝાવો મેળવો"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"ના, આભાર"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"સેટિંગ"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"સૌથી વધુ વપરાતી ઍપ અહીં દેખાય છે અને રૂટિનના આધારે બદલાય છે"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"ઍપ અંગેના સૂચનો મેળવવા માટે ઍપને નીચલી પંક્તિમાંથી બહાર ખેંચો"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"ઍપ અંગેના સૂચનો ખાલી જગ્યામાં ઉમેરાયા"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"ઍપના સુઝાવો ચાલુ છે"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"ઍપના સુઝાવો બંધ છે"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"પૂર્વાનુમાનિત ઍપ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"શેર કરો"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"સ્ક્રીનશૉટ"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ઍપ કે તમારી સંસ્થા દ્વારા આ ક્રિયા કરવાની મંજૂરી નથી"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"स्क्रीन को दो हिस्सों में बाँटना (स्प्लिट स्क्रीन)"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"पिन करना"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"फ़्रीफ़ॉर्म"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"खास जानकारी"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"हाल ही में इस्तेमाल किया गया कोई ऐप्लिकेशन नहीं है"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"बंद करें"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"ऐप्लिकेशन इस्तेमाल की सेटिंग"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"सभी ऐप्लिकेशन बंद करें"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"हाल ही में इस्तेमाल किए गए ऐप्लिकेशन"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"<1 मिनट"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"आज <xliff:g id="TIME">%1$s</xliff:g> और चलेगा"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"ऐप्लिकेशन के सुझाव"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"सुझाए गए ऐप्लिकेशन"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"सभी ऐप्लिकेशन"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"आपके काम के ऐप्लिकेशन"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"अपने होम स्क्रीन की सबसे नीचे वाली पंक्ति में ऐप्लिकेशन के सुझाव पाएं"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"अपने होम स्क्रीन की सबसे नीचे वाली पंक्ति में पसंदीदा ऐप्लिकेशन के सुझाव पाएं"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"आप जिन ऐप्लिकेशन का ज़्यादा इस्तेमाल करते हैं उन्हें सीधा अपने होम स्क्रीन पर पाएं. ऐप्लिकेशन इस्तेमाल करने के आपके रूटीन के हिसाब से सुझाव बदलते रहते हैं. नीचे की पंक्ति के ऐप्लिकेशन होम स्क्रीन पर आ जाएंगे."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"सबसे ज़्यादा इस्तेमाल होने वाले ऐप्लिकेशन सीधे होम स्क्रीन पर देखें. आप ऐप्लिकेशन का कितना इस्तेमाल कर रहे हैं, उसके हिसाब से सुझाव बदलते रहते हैं. आपके पसंदीदा ऐप्लिकेशन, होम स्क्रीन पर नीचे की पंक्ति में दिखाई देंगे."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"सबसे ज़्यादा इस्तेमाल होने वाले ऐप्लिकेशन, सीधे होम स्क्रीन पर पाएं. आपके ऐप्लिकेशन इस्तेमाल करने के रूटीन के हिसाब से सुझाव बदलते रहते हैं. नीचे की पंक्ति के ऐप्लिकेशन एक नए फ़ोल्डर में चले जाएंगे."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"ऐप्लिकेशन के बारे में सुझाव पाएं"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"रहने दें"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"सेटिंग"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"सबसे ज़्यादा इस्तेमाल होने वाले ऐप्लिकेशन यहां दिखेंगे. यह ऐप्लिकेशन, आपके इस्तेमाल के रूटीन के हिसाब से बदलते रहते हैं"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"नीचे वाली पंक्ति से ऐप्लिकेशन को खींचकर हटाएं, ताकि आप ऐप्लिकेशन के सुझाव पा सकें"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"खाली जगह पर ऐप्लिकेशन के सुझाव जोड़े गए"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"सुझाए गए ऐप्लिकेशन की सुविधा चालू है"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"सुझाए गए ऐप्लिकेशन की सुविधा बंद है"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"सुझाया गया ऐप्लिकेशन: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"शेयर करें"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"स्क्रीनशॉट"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ऐप्लिकेशन या आपका संगठन इस कार्रवाई की अनुमति नहीं देता"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Podijeljeni zaslon"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Prikvači"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Slobodni oblik"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Pregled"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Nema nedavnih stavki"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Zatvori"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Postavke upotrebe aplikacija"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Izbriši sve"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Nedavne aplikacije"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Predložene aplikacije"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Sve aplikacije"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Vaše predviđene aplikacije"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Prijedloge aplikacija vidjet ćete u donjem retku početnog zaslona"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Primajte prijedloge aplikacija u retku omiljenih na početnom zaslonu"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Lako pristupite najčešće upotrebljavanim aplikacijama s početnog zaslona. Prijedlozi će se mijenjati na temelju vaših rutina. Aplikacije iz donjeg retka pomaknut će se na početni zaslon."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Lako pristupite najčešće upotrebljavanim aplikacijama s početnog zaslona. Prijedlozi će se mijenjati na temelju vaših rutina. Aplikacije koje se nalaze u retku omiljenih pomaknut će se na početni zaslon."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Lako pristupite najčešće upotrebljavanim aplikacijama s početnog zaslona. Prijedlozi će se mijenjati na temelju vaših rutina. Aplikacije iz donjeg retka pomaknut će se u novu mapu."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Predloži mi aplikacije"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ne, hvala"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Postavke"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Ovdje se prikazuju najčešće upotrebljavane aplikacije i mijenjaju se na temelju rutina"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Povucite aplikacije iz donjeg retka da biste dobili prijedloge aplikacija"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Predložene aplikacije dodane u prazan prostor"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Predlaganje apl. omogućeno"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Predlaganje apl. onemogućeno"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predviđena aplikacija: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Podijeli"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Snimka zaslona"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Aplikacija ili vaša organizacija ne dopuštaju ovu radnju"</string>
|
||||
</resources>
|
||||
|
|
|
@ -20,11 +20,9 @@
|
|||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Osztott képernyő"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Rögzítés"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Kitűzés"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Szabad forma"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Áttekintés"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Nincsenek mostanában használt elemek"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Bezárás"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Alkalmazáshasználati beállítások"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Összes törlése"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Legutóbbi alkalmazások"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Alkalmazásjavaslatok"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Az összes alkalmazás"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Várható alkalmazások"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Alkalmazásjavaslatokat kaphat a kezdőképernyő alsó sorában"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Alkalmazásjavaslatokat kaphat a kezdőképernyőn megjelenő kedvencek sorában"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"A kezdőképernyőről könnyedén hozzáférhet a leggyakrabban használt alkalmazásokhoz. A javaslatok a rutinjai alapján változni fognak. Az alsó sorban lévő alkalmazások felkerülnek a kezdőképernyőre."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"A kezdőképernyőről könnyedén hozzáférhet a leggyakrabban használt alkalmazásokhoz. A javaslatok a rutinjai alapján változnak majd. A kedvencek sorában lévő alkalmazások a kezdőképernyőre kerülnek."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"A kezdőképernyőről könnyedén hozzáférhet a leggyakrabban használt alkalmazásokhoz. A javaslatok a rutinjai alapján változni fognak. Az alsó sorban lévő alkalmazások egy új mappába kerülnek."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Kérek javaslatokat"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Köszönöm, nem"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Beállítások"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"A leggyakrabban használt alkalmazások jelennek meg itt; a lista a rutinok alapján változhat"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Alkalmazásjavaslatok kéréséhez húzzon ki alkalmazásokat az alsó sorból"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Alkalmazásjavaslatok hozzáadva az üres területhez"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Alkalmazásjavaslatok engedélyezve"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Alkalmazásjavaslatok letiltva"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Várható alkalmazás: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Megosztás"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Képernyőkép"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Az alkalmazás vagy az Ön szervezete nem engedélyezi ezt a műveletet"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Տրոհել էկրանը"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Ամրացնել"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Կամայական ձև"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ընդհանուր տեղեկություններ"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Վերջին տարրեր չկան"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Փակել"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Հավելվածի օգտագործման կարգավորումներ"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Փակել բոլորը"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Վերջին օգտագործած հավելվածները"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Առաջարկվող հավելվածներ"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Բոլոր հավելվածները"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Ձեր կանխատեսված հավելվածները"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Ստացեք հավելվածների առաջարկներ հիմնական էկրանի ներքևում"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Ստացեք հավելվածների առաջարկներ հիմնական էկրանի «Ընտրանի» տողում"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Արագ բացեք հաճախ օգտագործվող հավելվածներն անմիջապես հիմնական էկրանից։ Առաջարկները կփոփոխվեն՝ կախված ձեր գործողություններից։ Ներքևում ցուցադրվող հավելվածները կտեղափոխվեն հիմնական էկրանի վերևի մաս։"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Արագ բացեք հաճախ օգտագործվող հավելվածներն անմիջապես հիմնական էկրանից։ Առաջարկները կփոփոխվեն՝ կախված ձեր գործողություններից։ «Ընտրանի» տողի հավելվածները կտեղափոխվեն հիմնական էկրան։"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Արագ բացեք հաճախ օգտագործվող հավելվածներն անմիջապես հիմնական էկրանից։ Առաջարկները կփոփոխվեն՝ կախված ձեր գործողություններից։ Ներքևում ցուցադրվող հավելվածները կտեղափոխվեն նոր պանակ։"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Ստանալ հավելվածների առաջարկներ"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ոչ, շնորհակալություն"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Կարգավորումներ"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Հաճախ օգտագործվող հավելվածները ցուցադրվում են այստեղ և փոփոխվում են ըստ ձեր գործողությունների հերթականության։"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Քաշեք հավելվածները ներքևի տողից՝ հավելվածների առաջարկները տեսնելու համար"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Առաջարկվող հավելվածները կավելացվեն ազատ տեղերում"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"«Առաջարկվող հավելվածներ» գործառույթը միացված է"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"«Առաջարկվող հավելվածներ» գործառույթն անջատված է"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Առաջարկվող հավելված՝ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Կիսվել"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Սքրինշոթ անել"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Այս գործողությունն արգելված է հավելվածի կամ ձեր կազմակերպության կողմից"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Layar terpisah"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Pasang pin"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Format bebas"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ringkasan"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Tidak ada item yang baru dibuka"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Tutup"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Setelan penggunaan aplikasi"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Hapus semua"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Aplikasi baru-baru ini"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Aplikasi terbaru"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 menit"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"<xliff:g id="TIME">%1$s</xliff:g> tersisa hari ini"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Saran aplikasi"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Semua aplikasi"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Aplikasi yang diprediksi"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Dapatkan saran aplikasi di baris paling bawah Layar utama"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Dapatkan saran aplikasi di baris favorit Layar utama"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Akses aplikasi yang paling sering digunakan dengan mudah, langsung di Layar utama. Saran akan berubah berdasarkan rutinitas Anda. Aplikasi di baris paling bawah akan berpindah naik ke Layar utama."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Mudah mengakses aplikasi yang paling sering digunakan, langsung di Layar utama. Saran akan berubah berdasarkan rutinitas Anda. Aplikasi di baris favorit akan berpindah ke Layar utama."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Akses aplikasi yang paling sering digunakan dengan mudah, langsung di Layar utama. Saran akan berubah berdasarkan rutinitas Anda. Aplikasi di baris paling bawah akan berpindah ke folder baru."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Dapatkan saran aplikasi"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Lain kali"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Setelan"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Aplikasi yang paling sering digunakan muncul di sini, dan berubah berdasarkan rutinitas"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Tarik aplikasi dari baris paling bawah untuk mendapatkan saran aplikasi"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Saran aplikasi ditambahkan ke ruang kosong"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Saran aplikasi diaktifkan"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Saran aplikasi dinonaktifkan"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplikasi yang diprediksi: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Bagikan"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Tindakan ini tidak diizinkan oleh aplikasi atau organisasi Anda"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Skipta skjá"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Festa"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Frjálst snið"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Yfirlit"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Engin nýleg atriði"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Loka"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Notkunarstillingar forrits"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Hreinsa allt"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Nýleg forrit"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Tillögur að forritum"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Öll forrit"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Spáð forrit"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Fáðu tillögur að forritum í neðstu röð heimaskjásins"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Fáðu tillögur að forritum á eftirlætissvæði heimaskjásins"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Nálgastu forritin sem þú notar mest auðveldlega á heimaskjánum. Tillögurnar breytast í samræmi við notkun þína. Forrit í neðstu röð færast upp á heimaskjáinn."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Nálgastu forritin sem þú notar mest á einfaldan hátt á heimaskjánum. Tillögurnar breytast í samræmi við notkun þína. Forrit á eftirlætissvæði færast á heimaskjáinn."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Nálgastu forritin sem þú notar mest auðveldlega á heimaskjánum. Tillögurnar breytast í samræmi við notkun þína. Forrit í neðstu röð færast í nýja möppu."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Fá tillögur að forritum"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Nei, takk"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Stillingar"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Mest notuðu forritin birtast hér og breytast í samræmi við rútínur"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Dragðu forrit af neðstu röð til að fá tillögð forrit"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Tillögðum forritum bætt við autt svæði"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Kveikt á tillögum að forritum"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Slökkt er á tillögðum forritum"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Tillaga að forriti: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Deila"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Skjámynd"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Forritið eða fyrirtækið leyfir ekki þessa aðgerð"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Schermo diviso"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Blocca"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Forma libera"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Panoramica"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Nessun elemento recente"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Chiudi"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Impostazioni di utilizzo delle app"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Cancella tutto"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"App recenti"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"App suggerite"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Tutte le app"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Le app previste"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Visualizza app suggerite nella riga inferiore della schermata Home"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Visualizza app suggerite nella riga dei Preferiti della schermata Home"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Accedi facilmente alle app più utilizzate direttamente dalla schermata Home. I suggerimenti varieranno in base alle tue routine. Le app nella riga inferiore verranno spostate più in alto sulla schermata Home."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Accedi facilmente alle app più utilizzate direttamente dalla schermata Home. I suggerimenti varieranno in base alle tue routine. Le app nella riga dei Preferiti verranno spostate nella schermata Home."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Accedi facilmente alle app più utilizzate direttamente dalla schermata Home. I suggerimenti varieranno in base alle tue routine. Le app nella riga inferiore verranno spostate in una nuova cartella."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Visualizza app suggerite"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"No, grazie"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Impostazioni"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Le app più utilizzate vengono visualizzate qui e variano in base alle routine"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Trascina le app fuori dalla riga inferiore per visualizzare le app suggerite"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App suggerite aggiunte a uno spazio vuoto"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"La funzionalità app suggerite è attiva"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"La funzionalità app suggerite è disattivata"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"App prevista: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Condividi"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Questa azione non è consentita dall\'app o dall\'organizzazione"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"מסך מפוצל"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"הצמדה"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"מצב חופשי"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"מסכים אחרונים"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"אין פריטים אחרונים"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"סגירה"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"הגדרות שימוש באפליקציה"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"ניקוי הכול"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"אפליקציות אחרונות"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"הצעות לאפליקציות"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"כל האפליקציות"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"האפליקציות החזויות שלך"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"קבלת הצעות לאפליקציות בשורה התחתונה של מסך הבית"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"קבלת הצעות לאפליקציות בשורת המועדפות של מסך הבית"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"גישה נוחה לאפליקציות הכי נפוצות ישירות ממסך הבית. ההצעות ישתנו בהתאם להרגלי השימוש שלך. אפליקציות שמופיעות בשורה התחתונה יעברו למעלה למסך הבית."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"גישה נוחה לאפליקציות שהשתמשת בהן הכי הרבה, ישירות ממסך הבית. ההצעות ישתנו בהתאם להרגלי השימוש שלך. אפליקציות בשורת המועדפות יועברו למסך הבית."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"גישה נוחה לאפליקציות הכי נפוצות ישירות ממסך הבית. ההצעות ישתנו בהתאם להרגלי השימוש שלך. אפליקציות שמופיעות בשורה התחתונה יעברו למעלה למסך הבית."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"קבלת הצעות לאפליקציות"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"לא, תודה"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"הגדרות"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"רוב האפליקציות הכי נפוצות מופיעות כאן ומשתנות בהתאם להרגלי השימוש שלך"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"יש לגרור אפליקציות מהשורה התחתונה כדי לקבל הצעות לאפליקציות"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"הצעות לאפליקציות נוספו לאזור ריק"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"ההצעות לאפליקציות מופעלות"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"ההצעות לאפליקציות מושבתות"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"האפליקציות החזויות: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"שיתוף"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"צילום מסך"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"האפליקציה או הארגון שלך אינם מתירים את הפעולה הזאת"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"分割画面"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"固定"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"フリーフォーム"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"概要"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"最近のアイテムはありません"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"閉じる"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"アプリの使用状況の設定"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"すべてクリア"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"最近使ったアプリ"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"アプリの候補"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"すべてのアプリ"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"予測されたアプリ"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"ホーム画面の一番下の行でアプリの候補を利用できます"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"ホーム画面のお気に入りの行でアプリの候補を利用できます"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"ホーム画面で、使用頻度の高いアプリに簡単にアクセスできるようになります。アプリの候補はルーティンに応じて変わります。一番下の行にあるアプリがホーム画面に移動します。"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"ホーム画面で、使用頻度の高いアプリに簡単にアクセスできるようになります。アプリの候補はルーティンに応じて変わります。お気に入りの行にあるアプリがホーム画面に移動します。"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"ホーム画面で、使用頻度の高いアプリに簡単にアクセスできるようになります。アプリの候補はルーティンに応じて変わります。一番下の行にあるアプリが新しいフォルダに移動します。"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"アプリの候補を利用"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"使用しない"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"設定"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"使用頻度の高いアプリがここに表示されます(ルーティンに応じて変わります)"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"一番下の行からアプリをドラッグするとアプリの候補が表示されます"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"空いたスペースにアプリの候補が追加されます"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"アプリの候補は有効です"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"アプリの候補は無効です"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"予測されたアプリ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"共有"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"スクリーンショット"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"この操作はアプリまたは組織で許可されていません"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"ეკრანის გაყოფა"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"ჩამაგრება"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"თავისუფალი ფორმა"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"მიმოხილვა"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"ბოლოს გამოყენებული ერთეულები არ არის"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"დახურვა"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"აპების გამოყენების პარამეტრები"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"ყველას გასუფთავება"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"ბოლოდროინდელი აპები"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 წუთი"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"დღეს დარჩენილია <xliff:g id="TIME">%1$s</xliff:g>"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"აპების შემოთავაზებები"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"აპის შემოთავაზებები"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"ყველა აპი"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"თქვენი პროგნოზირებული აპები"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"მიიღეთ აპის შეთავაზებები მთავარი ეკრანის ქვედა რიგში"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"მიიღეთ აპების შემოთავაზებები მთავარი ეკრანის რჩეულების მწკრივში"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"მარტივად იქონიეთ ყველაზე ხშირად გამოყენებულ აპებზე წვდომა მთავარი ეკრანიდან. შეთავაზებები შეიცვლება თქვენი რუტინების მიხედვით. მოხდება ქვედა რიგში არსებული აპების მთავარ ეკრანზე გადატანა."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"მარტივად იქონიეთ წვდომა ყველაზე ხშირად გამოყენებულ აპებზე მთავარი ეკრანიდან. შეთავაზებები შეიცვლება თქვენი რუტინების მიხედვით. რჩეულების მწკრივში არსებული აპები თქვენს მთავარ ეკრანზე გადავა."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"მარტივად იქონიეთ ყველაზე ხშირად გამოყენებულ აპებზე წვდომა მთავარი ეკრანიდან. შეთავაზებები შეიცვლება თქვენი რუტინების მიხედვით. მოხდება ქვედა რიგში არსებული აპების ახალ საქაღალდეში გადატანა."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"აპის შეთავაზებების მიღება"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"არა, გმადლობთ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"პარამეტრები"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"ყველაზე ხშირად გამოყენებული აპები აქ ჩანს და ცვალებადობს რუტინების მიხედვით"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"გადაიტანეთ აპები ეკრანის ქვედა რიგში, რათა აპის შეთავაზებები მიიღოთ"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"აპის შეთავაზებები დამატებულია ცარიელ სივრცეში"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"აპის შეთავაზებები ჩართულია"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"აპის შეთავაზებები გათიშულია"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ნაწინასწარმეტყველები აპი: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"გაზიარება"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"ეკრანის ანაბეჭდი"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ეს მოქმედება არ არის დაშვებული აპის ან თქვენი ორგანიზაციის მიერ"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Экранды бөлу"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Бекіту"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Еркін форма"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Шолу"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Соңғы элементтер жоқ"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Жабу"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Қолданбаны пайдалану параметрлері"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Барлығын өшіру"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Соңғы пайдаланылған қолданбалар"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 мин"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Бүгін <xliff:g id="TIME">%1$s</xliff:g> қалды"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Қолданба ұсыныстары"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Ұсынылған қолданбалар"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Барлық қолданбалар"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Ұсынылатын қолданбалар"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Негізгі экранның төменгі жолында қолданбаларды ұсыну"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Ұсынылған қолданбалар негізгі экранда таңдаулылар арасында көрсетілетін болады"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Жиі пайдаланылатын қолданбаларға негізгі экраннан кіруге болады. Ұсыныстар күнделікті әрекеттеріңізге сәйкес өзгереді. Төменгі қатардағы қолданбалар негізгі экранға қарай жоғары жылжиды."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Жиі пайдаланылатын қолданбаларға негізгі экраннан оңай кіре аласыз. Ұсыныстар күнделікті әрекеттеріңізге сәйкес өзгереді. Таңдаулылар жолындағы қолданбалар негізгі экранға ауысады."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Жиі пайдаланылатын қолданбаларға негізгі экраннан кіруге болады. Ұсыныстар күнделікті әрекеттеріңізге сәйкес өзгереді. Төменгі қатардағы қолданбалар жаңа қалтаға жылжиды."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Ұсынылған қолданбаларды көру"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Жоқ, рақмет"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Параметрлер"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Жиі пайдаланылатын қолданбалар осы жерде көрсетіледі. Олар күнделікті әрекеттеріңізге сәйкес өзгереді."</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Ұсынылған қолданбаларды көру үшін төменгі қатардан керектерін сүйреп шығарыңыз."</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Ұсынылған қолданбалар бос орынға қосылды."</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"\"Ұсынылған қолданбалар\" функциясы қосулы."</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"\"Ұсынылған қолданбалар\" функциясы өшірулі."</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Болжалды қолданба: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Бөлісу"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Скриншот"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Бұл әрекетке қолданба не ұйым рұқсат етпейді."</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"មុខងារបំបែកអេក្រង់"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"ដៅ"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"មុខងារទម្រង់សេរី"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ទិដ្ឋភាពរួម"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"មិនមានធាតុថ្មីៗទេ"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"បិទ"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"ការកំណត់ការប្រើប្រាស់កម្មវិធី"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"សម្អាតទាំងអស់"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"កម្មវិធីថ្មីៗ"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"ការណែនាំកម្មវិធី"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"កម្មវិធីទាំងអស់"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"កម្មវិធីដែលបានព្យាកររបស់អ្នក"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"ទទួលបានការណែនាំកម្មវិធីនៅជួរខាងក្រោមនៃអេក្រង់ដើមរបស់អ្នក"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"ទទួលបានការណែនាំកម្មវិធីនៅលើជួរដេកសំណព្វនៃអេក្រង់ដើមរបស់អ្នក"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"ចូលប្រើកម្មវិធីដែលអ្នកប្រើញឹកញាប់បំផុតបានយ៉ាងងាយស្រួលនៅលើអេក្រង់ដើមផ្ទាល់។ ការណែនាំនឹងប្រែប្រួលទៅតាមទម្លាប់របស់អ្នក។ កម្មវិធីនៅជួរខាងក្រោមនឹងផ្លាស់ទីឡើងទៅអេក្រង់ដើមរបស់អ្នក។"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"ចូលប្រើកម្មវិធីដែលអ្នកប្រើញឹកញាប់បំផុតបានយ៉ាងងាយស្រួលនៅលើអេក្រង់ដើមដោយផ្ទាល់។ ការណែនាំនឹងប្រែប្រួលទៅតាមទម្លាប់របស់អ្នក។ កម្មវិធីនៅក្នុងជួរដេកសំណព្វនឹងផ្លាស់ទីទៅអេក្រង់ដើមរបស់អ្នក។"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"ចូលប្រើកម្មវិធីដែលអ្នកប្រើញឹកញាប់បំផុតបានយ៉ាងងាយស្រួលនៅលើអេក្រង់ដើមផ្ទាល់។ ការណែនាំនឹងប្រែប្រួលទៅតាមទម្លាប់របស់អ្នក។ កម្មវិធីនៅជួរខាងក្រោមនឹងផ្លាស់ទីទៅថតថ្មី។"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"ទទួលការណែនាំកម្មវិធី"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"ទេ អរគុណ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"ការកំណត់"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"កម្មវិធីដែលប្រើញឹកញាប់បំផុតបង្ហាញនៅទីនេះ និងប្រែប្រួលទៅតាមទម្លាប់"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"អូសកម្មវិធីចេញពីជួរខាងក្រោម ដើម្បីទទួលបានការណែនាំកម្មវិធី"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"បានបញ្ចូលការណែនាំកម្មវិធីទៅក្នុងកន្លែងទំនេរ"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"បានបើកការណែនាំកម្មវិធី"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"បានបិទការណែនាំកម្មវិធី"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"កម្មវិធីដែលបានព្យាករ៖ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"ចែករំលែក"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"រូបថតអេក្រង់"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"សកម្មភាពនេះមិនត្រូវបានអនុញ្ញាតដោយកម្មវិធី ឬស្ថាប័នរបស់អ្នកទេ"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"ಪರದೆಯನ್ನು ಬೇರ್ಪಡಿಸಿ"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"ಪಿನ್ ಮಾಡಿ"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"ಮುಕ್ತಸ್ವರೂಪ"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ಅವಲೋಕನ"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಐಟಂಗಳಿಲ್ಲ"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"ಮುಚ್ಚಿ"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"ಆ್ಯಪ್ ಬಳಕೆಯ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"ಎಲ್ಲವನ್ನೂ ತೆರವುಗೊಳಿಸಿ"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್ಗಳು"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"ಆ್ಯಪ್ ಸಲಹೆಗಳು"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"ಎಲ್ಲಾ ಆ್ಯಪ್ಗಳು"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"ನಿಮ್ಮ ಸಂಭವನೀಯ ಆ್ಯಪ್ಗಳು"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್ನ ಕೆಳಭಾಗದ ಸಾಲಿನಲ್ಲಿ ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಿರಿ"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್ನ ಮೆಚ್ಚಿನವುಗಳ ಸಾಲಿನಲ್ಲಿ ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಿರಿ"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿಯೇ ನೀವು ಹೆಚ್ಚು ಬಳಸಿದ ಆ್ಯಪ್ಗಳನ್ನು ಸುಲಭವಾಗಿ ಪ್ರವೇಶಿಸಿ. ನಿಮ್ಮ ದಿನಚರಿಯನ್ನು ಆಧರಿಸಿ ಸಲಹೆಗಳು ಬದಲಾಗುತ್ತವೆ. ಕೆಳಭಾಗದ ಸಾಲಿನಲ್ಲಿನ ಆ್ಯಪ್ಗಳು ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್ ಚಲಿಸುತ್ತವೆ."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿಯೇ ನೀವು ಹೆಚ್ಚು ಬಳಸಿದ ಆ್ಯಪ್ಗಳನ್ನು ಸುಲಭವಾಗಿ ಪ್ರವೇಶಿಸಿ. ನಿಮ್ಮ ದಿನಚರಿಯನ್ನು ಆಧರಿಸಿ ಸಲಹೆಗಳು ಬದಲಾಗುತ್ತವೆ. ಮೆಚ್ಚಿನವುಗಳ ಸಾಲಿನಲ್ಲಿನ ಆ್ಯಪ್ಗಳು ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್ಗೆ ಚಲಿಸುತ್ತವೆ."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿಯೇ ನೀವು ಹೆಚ್ಚು ಬಳಸಿದ ಆ್ಯಪ್ಗಳನ್ನು ಸುಲಭವಾಗಿ ಪ್ರವೇಶಿಸಿ. ನಿಮ್ಮ ದಿನಚರಿಯನ್ನು ಆಧರಿಸಿ ಸಲಹೆಗಳು ಬದಲಾಗುತ್ತವೆ. ಕೆಳಭಾಗದ ಸಾಲಿನಲ್ಲಿನ ಆ್ಯಪ್ಗಳು ಹೊಸ ಫೋಲ್ಡರ್ಗೆ ಚಲಿಸುತ್ತವೆ."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಿರಿ"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"ಬೇಡ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"ಹೆಚ್ಚು ಬಳಸಿದ ಆ್ಯಪ್ಗಳು ಇಲ್ಲಿ ಕಾಣಿಸುತ್ತವೆ ಮತ್ತು ದಿನಚರಿಯನ್ನು ಆಧರಿಸಿ ಬದಲಾಗುತ್ತದೆ"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು, ಆ್ಯಪ್ಗಳನ್ನು ಕೆಳಭಾಗದ ಸಾಲಿನಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ಖಾಲಿ ಸ್ಥಳಕ್ಕೆ ಸೇರಿಸಲಾಗಿದೆ"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"ಆ್ಯಪ್ ಸಲಹೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ಶಿಫಾರಸು ಮಾಡಿದ ಆ್ಯಪ್: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"ಹಂಚಿಕೊಳ್ಳಿ"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"ಸ್ಕ್ರೀನ್ಶಾಟ್"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ಆ್ಯಪ್ ಅಥವಾ ನಿಮ್ಮ ಸಂಸ್ಥೆಯು ಈ ಕ್ರಿಯೆಯನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"화면 분할"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"고정"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"자유 형식"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"최근 사용"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"최근 항목이 없습니다."</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"닫기"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"앱 사용 설정"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"모두 삭제"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"최근 앱"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1분"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"오늘 <xliff:g id="TIME">%1$s</xliff:g> 남음"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"앱 추천"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"앱 제안"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"모든 앱"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"추천 앱"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"홈 화면 하단에서 앱 제안 보기"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"홈 화면의 즐겨찾기 행에서 앱 제안 보기"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"홈 화면에서 자주 사용하는 앱에 바로 액세스할 수 있습니다. 제안은 사용 습관에 따라 바뀌며, 하단의 앱들은 홈 화면으로 이동합니다."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"홈 화면에서 가장 많이 사용한 앱에 바로 액세스할 수 있습니다. 제안은 루틴에 따라 달라집니다. 즐겨찾기 행의 앱이 홈 화면으로 이동합니다."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"홈 화면에서 자주 사용하는 앱에 바로 액세스할 수 있습니다. 제안은 사용 습관에 따라 바뀌며, 하단의 앱들은 새 폴더로 이동합니다."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"앱 제안받기"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"나중에"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"설정"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"가장 많이 사용한 앱이 여기에 표시되며 루틴에 따라 달라짐"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"하단 행에서 앱을 드래그하여 앱 제안 받기"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"빈 공간에 앱 제안이 추가됨"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"앱 제안이 사용 설정됨"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"앱 제안이 사용 중지됨"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"예상 앱: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"공유"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"스크린샷"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"이 작업은 앱 또는 조직에서 허용되지 않습니다."</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Экранды бөлүү"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Кадап коюу"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Эркин форма режими"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Сереп салуу"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Акыркы колдонмолор жок"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Жабуу"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Колдонмону пайдалануу жөндөөлөрү"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Баарын тазалоо"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Акыркы колдонмолор"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 мүнөт"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Бүгүн <xliff:g id="TIME">%1$s</xliff:g> мүнөт калды"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Колдонмо сунуштары"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Сунушталган колдонмолор"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Бардык колдонмолор"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Божомолдонгон колдонмолоруңуз"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Сунушталган колдонмолор башкы экрандын ылдый жагында көрүнөт."</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Сунушталган колдонмолор башкы экрандагы тандалмалардын катарында көрүнөт."</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Көп колдонулган колдонмолор башкы экранда жайгашып, алардын тизмеси маал-маалы менен өзгөрүп турат. Ылдый жакта жайгашкан тилкедеги колдонмолор башкы экранга жылдырылат."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Көп иштетилген колдонмолорго Башкы экрандан оңой кириңиз. Сунуштар тартиптин негизинде өзгөрөт. Тандалмалардын катарындагы колдонмолор башкы экраныңызга жылдырылат."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Көп колдонулган колдонмолор башкы экранда жайгашып, алардын тизмеси маал-маалы менен өзгөрүп турат. Ылдый жакта жайгашкан тилкедеги колдонмолор жаңы папкага жылдырылат."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Сунушталган колдонолорду алуу"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Жок, рахмат"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Жөндөөлөр"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Көп иштетилген колдонмолор ушул жерде көрүнүп, тартиптин негизинде өзгөрөт"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Сунуштарды алып туруу үчүн, ылдый жактагы тилкедеги колдонмолорду сүйрөп келиңиз"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Сунушталган колдонмолор бош жерге кошулат"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Сунушталган колдонмолор функциясы иштетилди"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Сунушталган колдонмолор функциясы өчүрүлгөн"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Божомолдонгон колдонмо: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Бөлүшүү"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Скриншот"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Бул аракетти аткарууга колдонмо же ишканаңыз тыюу салган"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"ແບ່ງໜ້າຈໍ"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"ປັກໝຸດ"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"ຮູບແບບອິດສະຫລະ"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ພາບຮວມ"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"ບໍ່ມີລາຍການຫຼ້າສຸດ"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"ປິດ"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"ການຕັ້ງຄ່າການນຳໃຊ້ແອັບ"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"ລຶບລ້າງທັງໝົດ"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"ແອັບຫຼ້າສຸດ"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"ການແນະນຳແອັບ"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"ແອັບທັງໝົດ"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"ແອັບທີ່ຄາດເດົາໄວ້ແລ້ວຂອງທ່ານ"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"ຮັບການແນະນຳແອັບຢູ່ແຖວລຸ່ມສຸດຂອງໜ້າຈໍຫຼັກທ່ານ"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"ຮັບການແນະນຳແອັບຢູ່ແຖວລາຍການທີ່ມັກຂອງໜ້າຈໍຫຼັກຂອງທ່ານ"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"ເຂົ້າເຖິງແອັບທີ່ທ່ານໃຊ້ຫຼາຍທີ່ສຸດໄດ້ຢ່າງງ່າຍດາຍທັນທີຈາກໜ້າຈໍຫຼັກ. ການແນະນຳຈະປ່ຽນແປງຕາມການນຳໃຊ້ປະຈຳຂອງທ່ານ. ແອັບຢູ່ແຖວລຸ່ມສຸດຈະຍ້າຍຂຶ້ນໄປໃສ່ໜ້າຈໍຫຼັກຂອງທ່ານ."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"ເຂົ້າເຖິງແອັບທີ່ທ່ານໃຊ້ຫຼາຍທີ່ສຸດໄດ້ຢ່າງງ່າຍດາຍທັນທີຈາກໜ້າຈໍຫຼັກ. ການແນະນຳຈະປ່ຽນແປງຕາມການນຳໃຊ້ປະຈຳຂອງທ່ານ. ຕອນນີ້ແອັບໃນລາຍການທີ່ມັກຈະຍ້າຍໄປໃສ່ໜ້າຈໍຫຼັກຂອງທ່ານ."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"ເຂົ້າເຖິງແອັບທີ່ທ່ານໃຊ້ຫຼາຍທີ່ສຸດໄດ້ຢ່າງງ່າຍດາຍທັນທີຈາກໜ້າຈໍຫຼັກ. ການແນະນຳຈະປ່ຽນແປງຕາມການນຳໃຊ້ປະຈຳຂອງທ່ານ. ແອັບຢູ່ແຖວລຸ່ມສຸດຈະຍ້າຍໄປໂຟນເດີໃໝ່."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"ຮັບການແນະນຳແອັບ"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"ບໍ່, ຂອບໃຈ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"ການຕັ້ງຄ່າ"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"ແອັບທີ່ໃຊ້ຫຼາຍທີ່ສຸດຈະປາກົດຢູ່ບ່ອນນີ້ ແລະ ປ່ຽນໄປຕາມການນຳໃຊ້ປະຈຳ"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"ລາກແອັບຈາກແຖບລຸ່ມສຸດເພື່ອຮັບການແນະນຳແອັບ"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"ເພີ່ມການແນະນຳແອັບໃສ່ພື້ນທີ່ຫວ່າງແລ້ວ"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"ເປີດການນຳໃຊ້ການແນະນຳແອັບແລ້ວ"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"ປິດການນຳໃຊ້ການແນະນຳແອັບແລ້ວ"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ແອັບທີ່ຄາດເດົາໄວ້: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"ແບ່ງປັນ"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"ຮູບໜ້າຈໍ"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ແອັບ ຫຼື ອົງການຂອງທ່ານບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຄຳສັ່ງນີ້"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Skaidyti ekraną"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Prisegti"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Laisva forma"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Apžvalga"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Nėra jokių naujausių elementų"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Uždaryti"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Programos naudojimo nustatymai"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Išvalyti viską"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Naujausios programos"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Programų pasiūlymai"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Visos programos"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Numatomos programos"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Gaukite programų pasiūlymų apatinėje pagrindinio ekrano eilutėje"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Gaukite programų pasiūlymų pagrindinio ekrano eilutėje „Mėgstamiausios“"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Lengvai pasiekite dažniausiai naudojamas programas iškart pagrindiniame ekrane. Pasiūlymai keisis atsižvelgiant į tai, kaip jas naudojate. Apatinėje eilutėje esančios programos bus perkeltos į pagrindinį ekraną."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Lengvai pasiekite dažniausiai naudojamas programas iškart pagrindiniame ekrane. Pasiūlymai keisis atsižvelgiant į tai, kaip jas naudojate. Eilutėje „Mėgstamiausios“ rodomos programos bus perkeltos į pagrindinį ekraną."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Lengvai pasiekite dažniausiai naudojamas programas iškart pagrindiniame ekrane. Pasiūlymai keisis atsižvelgiant į tai, kaip jas naudojate. Apatinėje eilutėje esančios programos bus perkeltos į naują aplanką."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Gauti programų pasiūlymų"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Ne, ačiū"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Nustatymai"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Dažniausiai naudojamos programos rodomos čia ir keičiasi pagal tai, kaip jas naudojate"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Nuvilkę programas į apatinę eilutę gausite programų pasiūlymų"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Programų pasiūlymai pridedami tuščioje vietoje"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Siūlomų programų funkcija įgalinta"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Siūlomų programų funkcija išjungta"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Numatoma programa: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Bendrinti"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Ekrano kopija"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Jūsų organizacijoje arba naudojant šią programą neleidžiama atlikti šio veiksmo"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Sadalīt ekrānu"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Piespraust"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Brīva forma"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Pārskats"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Nav nesenu vienumu."</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Aizvērt"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Lietotņu izmantošanas iestatījumi"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Notīrīt visu"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Pēdējās izmantotās lietotnes"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Ieteicamās lietotnes"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Visas lietotnes"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Jūsu prognozētās lietotnes"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Sākuma ekrāna apakšējā rindā tiks rādītas ieteicamās lietotnes"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Saņemiet lietotņu ieteikumus izlases rindā sākuma ekrānā"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Varat sākuma ekrānā ērti piekļūt savām visbiežāk izmantotajām lietotnēm. Ieteikumi mainīsies atkarībā no jūsu paradumiem. Apakšējā rindā esošās lietotnes tiks pārvietotas uz augšu — uz sākuma ekrānu."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Varat sākuma ekrānā ērti piekļūt savām visbiežāk izmantotajām lietotnēm. Ieteikumi mainīsies atkarībā no jūsu paradumiem. Lietotnes no izlases rindas tiks pārvietotas uz sākuma ekrānu."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Varat sākuma ekrānā ērti piekļūt savām visbiežāk izmantotajām lietotnēm. Ieteikumi mainīsies atkarībā no jūsu paradumiem. Apakšējā rindā esošās lietotnes tiks pārvietotas uz jaunu mapi."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Rādīt ieteicamās lietotnes"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Nē, paldies"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Iestatījumi"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Šeit tiek rādītas visbiežāk izmantotās lietotnes, un tās mainās atkarībā no jūsu paradumiem"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Lai skatītu ieteicamās lietotnes, velciet lietotnes prom no apakšējās rindas"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Ieteicamās lietotnes tika pievienotas tukšajā vietā"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Ieteicamās lietotnes ir iespējotas"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Ieteicamās lietotnes ir atspējotas"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Prognozētā lietotne: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Kopīgot"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Veikt ekrānuzņēmumu"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Lietotne vai jūsu organizācija neatļauj veikt šo darbību."</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,11 +22,9 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Поделен екран"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Прикачување"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Freeform"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Преглед"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Нема неодамнешни ставки"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Затвори"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Поставки за користење на апликациите"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Исчисти ги сите"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Избриши ги сите"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Неодамнешни апликации"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 минута"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Предлози за апликации"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Сите апликации"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Вашите предвидени апликации"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Добивајте предлози за апликации на долниот ред од почетниот екран"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Добивајте предлози за апликации во редот со омилени на почетниот екран"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Лесно пристапувајте до најкористените апликации директно на почетниот екран. Предлозите ќе се менуваат според рутините. Апликациите од последниот ред ќе се поместуваат нагоре до почетниот екран."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Лесно пристапувајте до најкористените апликации на почетниот екран. Предлозите ќе се менуваат според рутините. Апликациите од редот со омилени ќе се преместат на почетниот екран."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Лесно пристапувајте до најкористените апликации директно на почетниот екран. Предлозите ќе се менуваат според рутините. Апликациите од последниот ред ќе се преместуваат во нова папка."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Добивајте предлози за апликации"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Не, фала"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Поставки"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Најкористените апликации се појавуваат тука и се менуваат според рутините"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Отстранете апликации од долниот ред со повлекување за да добивате предлози за апликации"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Предлозите за апликации се додадени во празен простор"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Предлозите за апликации се овозможени"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Предлозите за апликации се оневозможени"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Предвидена апликација: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Сподели"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Слика од екранот"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Апликацијата или вашата организација не го дозволува дејствово"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"സ്ക്രീൻ വിഭജിക്കുക"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"പിൻ ചെയ്യുക"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"ഫ്രീഫോം"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"അവലോകനം"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"സമീപകാല ഇനങ്ങൾ ഒന്നുമില്ല"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"അവസാനിപ്പിക്കുക"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"ആപ്പ് ഉപയോഗ ക്രമീകരണം"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"എല്ലാം മായ്ക്കുക"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"സമീപകാല ആപ്പുകൾ"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"ആപ്പ് നിർദ്ദേശങ്ങൾ"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"എല്ലാ ആപ്പുകളും"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"നിങ്ങളുടെ പ്രവചിക്കപ്പെട്ട ആപ്പുകൾ"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"നിങ്ങളുടെ ഹോം സ്ക്രീനിന്റെ താഴത്തെ നിരയിൽ ആപ്പ് നിർദ്ദേശങ്ങൾ നേടുക"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"നിങ്ങളുടെ ഹോം സ്ക്രീനിന്റെ \'പ്രിയപ്പെട്ടവ\' വരിയിൽ ആപ്പ് നിർദ്ദേശങ്ങൾ നേടുക"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"നിങ്ങൾ ഏറ്റവും കൂടുതൽ ഉപയോഗിച്ച ആപ്പുകൾ ഹോം സ്ക്രീനിൽ നിന്ന് തന്നെ എളുപ്പത്തിൽ ആക്സസ് ചെയ്യൂ. നിങ്ങളുടെ ദിനചര്യകളുടെ അടിസ്ഥാനത്തിൽ നിർദ്ദേശങ്ങൾ മാറും. താഴത്തെ നിരയിലുള്ള ആപ്പുകൾ നിങ്ങളുടെ ഹോം സ്ക്രീനിലേക്ക് നീങ്ങും."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"നിങ്ങൾ ഏറ്റവും കൂടുതൽ ഉപയോഗിച്ച ആപ്പുകൾ ഹോം സ്ക്രീനിൽ നിന്ന് തന്നെ എളുപ്പത്തിൽ ആക്സസ് ചെയ്യൂ. നിങ്ങളുടെ ദിനചര്യകളുടെ അടിസ്ഥാനത്തിൽ നിർദ്ദേശങ്ങൾ മാറും. \'പ്രിയപ്പെട്ടവ\' വരിയിലുള്ള ആപ്പുകൾ നിങ്ങളുടെ ഹോം സ്ക്രീനിലേക്ക് നീങ്ങും."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"നിങ്ങൾ ഏറ്റവും കൂടുതൽ ഉപയോഗിച്ച ആപ്പുകൾ ഹോം സ്ക്രീനിൽ നിന്ന് തന്നെ എളുപ്പത്തിൽ ആക്സസ് ചെയ്യൂ. നിങ്ങളുടെ ദിനചര്യകളുടെ അടിസ്ഥാനത്തിൽ നിർദ്ദേശങ്ങൾ മാറും. താഴത്തെ നിരയിലുള്ള ആപ്പുകൾ പുതിയൊരു ഫോൾഡറിലേക്ക് നീങ്ങും."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"ആപ്പ് നിർദ്ദേശങ്ങൾ നേടുക"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"വേണ്ട"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"ക്രമീകരണം"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"ഏറ്റവുമധികം ഉപയോഗിക്കുന്ന ആപ്പുകൾ ഇവിടെ ദൃശ്യമാകും, ദിനചര്യയ്ക്ക് അനുസരിച്ച് അത് മാറുകയും ചെയ്യും"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"ആപ്പ് നിർദ്ദേശങ്ങൾ നേടാൻ താഴത്തെ നിരയിലെ ആപ്പുകൾ വലിച്ചിടുക"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"ആപ്പ് നിർദ്ദേശങ്ങൾ ഒഴിഞ്ഞ സ്ഥലത്തേക്ക് ചേർത്തു"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"ആപ്പ് നിർദ്ദേശങ്ങൾ പ്രവർത്തനക്ഷമമാക്കി"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"ആപ്പ് നിർദ്ദേശങ്ങൾ പ്രവർത്തനരഹിതമാക്കി"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"പ്രവചിച്ച ആപ്പ്: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"പങ്കിടുക"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"സ്ക്രീൻഷോട്ട്"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ഈ നടപടി എടുക്കുന്നത് ആപ്പോ നിങ്ങളുടെ സ്ഥാപനമോ അനുവദിക്കുന്നില്ല"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Дэлгэцийг хуваах"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Тогтоох"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Чөлөөтэй хувьсах"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Тойм"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Сүүлийн үеийн зүйл алга"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Хаах"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Апп ашиглалтын тохиргоо"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Бүгдийг устгах"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Саяхны аппууд"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< 1 минут"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"Өнөөдөр <xliff:g id="TIME">%1$s</xliff:g> үлдсэн"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Аппын зөвлөмж"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"Санал болгож буй аппууд"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Бүх апп"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Таны таамагласан аппууд"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Үндсэн нүүрнийхээ доод мөрөнд санал болгож буй аппуудыг аваарай"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Үндсэн нүүрний дуртай мөрнөөсөө санал болгож буй аппуудыг аваарай"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Хамгийн их ашигладаг аппууддаа Үндсэн нүүрнээс хялбархан хандаарай. Санал болгож буй аппуудыг таны хэвшлээс хамаарч өөрчилнө. Доод мөрөнд буй аппуудыг таны Үндсэн нүүр лүү дээш зөөнө."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Хамгийн их ашигладаг аппууддаа Үндсэн нүүрнээсээ хялбархан хандаарай. Санал болголтыг таны хэвшлээс хамааран өөрчилнө. Дуртай мөрөнд буй аппуудыг таны үндсэн нүүр лүү зөөнө."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Хамгийн их ашигладаг аппууддаа Үндсэн нүүрнээс хялбархан хандаарай. Санал болгож буй аппуудыг таны хэвшлээс хамаарч өөрчилнө. Доод мөрөнд буй аппуудыг шинэ фолдер луу зөөнө."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Санал болгож буй аппуудыг авах"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Үгүй, баярлалаа"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Тохиргоо"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Хамгийн их ашигладаг аппуудыг энд харуулах бөгөөд хэвшлээс хамаарч өөрчилдөг"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Санал болгож буй аппуудыг авахын тулд доод мөрөөс аппуудыг чирж гаргаарай"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Санал болгож буй аппуудыг хоосон зайд нэмсэн"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Санал болгож буй аппуудыг идэвхжүүлсэн"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Санал болгож буй аппуудыг идэвхгүй болгосон"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Таамаглаж буй апп: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Хуваалцах"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Дэлгэцийн агшин дарах"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Энэ үйлдлийг апп эсвэл танай байгууллага зөвшөөрдөггүй"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"विभाजित स्क्रीन"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"पिन करा"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"फ्रीफॉर्म"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"अवलोकन"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"कोणतेही अलीकडील आयटम नाहीत"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"बंद"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"अॅप वापर सेटिंग्ज"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"सर्व साफ करा"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"अलीकडील अॅप्स"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"अॅप सूचना"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"सर्व अॅप्स"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"तुमची पूर्वानुमानीत अॅप्स"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"तुमच्या होम स्क्रीनच्या तळाशी अॅप सूचना मिळवा"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"तुमच्या होम स्क्रीनच्या पसंतीच्या पंक्तीवर अॅप सूचना मिळवा"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"तुमची सर्वाधिक वापरली जाणारी अॅप्स होम स्क्रीनवरच सहजपणे अॅक्सेस करा. तुमच्या दिनक्रमानुसार तुम्हाला मिळणाऱ्या सूचना बदलतील. तळाशी असणारी अॅप्स तुमच्या होम स्क्रीनवर जातील."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"तुमची सर्वाधिक वापरली जाणारी अॅप्स होम स्क्रीनवर सहजपणे अॅक्सेस करा. सूचना तुमच्या दिनक्रमांनुसार बदलतील. पसंतीच्या पंक्तीमधील अॅप्स तुमच्या होम स्क्रीनवर हलवली जातील."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"तुमची सर्वाधिक वापरली जाणारी अॅप्स होम स्क्रीनवरच सहजपणे अॅक्सेस करा. सूचना तुमच्या दिनक्रमांच्या आधारावर बदलतील. तळाच्या पंक्तीवरील अॅप्स नवीन फोल्डरवर जातील."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"अॅप सूचना मिळवा"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"नाही, नको"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"सेटिंग्ज"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"सर्वाधिक वापरली जाणारी अॅप्स येथे दिसतात आणि दिनक्रमांच्या आधारावर बदलतात"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"अॅप सूचना मिळवण्यासाठी तळाच्या पंक्तीवरून अॅप्स ड्रॅग करा"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"रिकाम्या जागेवर जोडलेल्या अॅप सूचना"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"अॅप सूचना सुरू केल्या आहेत"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"अॅप सूचना बंद केल्या आहेत"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"पूर्वानुमान केलेले अॅप: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"शेअर करा"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"स्क्रीनशॉट"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"अॅप किंवा तुमच्या संस्थेद्वारे ही क्रिया करण्याची अनुमती नाही"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Skrin pisah"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Semat"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Bentuk bebas"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ikhtisar"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Tiada item terbaharu"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Tutup"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Tetapan penggunaan apl"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Kosongkan semua"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Apl terbaharu"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Cadangan apl"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Semua apl"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Apl ramalan anda"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Dapatkan cadangan apl di baris bawah Skrin utama anda"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Dapatkan cadangan apl di baris kegemaran Skrin utama anda"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Akses apl yang paling kerap anda gunakan dengan mudah pada Skrin utama. Cadangan akan berubah berdasarkan rutin anda. Apl di baris bawah akan beralih ke atas, ke Skrin utama anda."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Akses apl yang paling kerap anda gunakan dengan mudah pada Skrin utama. Cadangan akan berubah berdasarkan rutin anda. Apl di baris kegemaran akan beralih ke Skrin utama anda."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Akses apl yang paling kerap anda gunakan dengan mudah, terus pada Skrin utama. Cadangan akan berubah berdasarkan rutin anda. Apl di baris bawah akan beralih ke folder baharu."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Dapatkan cadangan apl"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Tidak perlu"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Tetapan"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Apl yang paling kerap digunakan dipaparkan di sini dan berubah berdasarkan rutin"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Seret apl keluar dari baris bawah untuk mendapatkan cadangan apl"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Cadangan apl ditambahkan pada ruang kosong"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Cadangan apl didayakan"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Cadangan apl dilumpuhkan"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Apl yang diramalkan: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Kongsi"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Tangkapan skrin"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Tindakan ini tidak dibenarkan oleh apl atau organisasi anda"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"မျက်နှာပြင် ခွဲ၍ပြသခြင်း"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"ပင်ထိုးခြင်း"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"အလွတ်ပုံစံ"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"အနှစ်ချုပ်"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"မကြာမီကဖွင့်ထားသည်များ မရှိပါ"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"ပိတ်ရန်"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"အက်ပ်အသုံးပြုမှု ဆက်တင်များ"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"အားလုံးကို ရှင်းရန်"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"လတ်တလောသုံး အက်ပ်များ"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"အက်ပ်အကြံပြုချက်များ"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"အက်ပ်အားလုံး"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"သင်၏ ခန့်မှန်းအက်ပ်များ"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"သင်၏ \'ပင်မစာမျက်နှာ\' အောက်ခြေအတန်းတွင် အက်ပ်အကြံပြုချက်များ ရယူခြင်း"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"သင်၏ \'ပင်မစာမျက်နှာ\' ၏ အနှစ်သက်ဆုံးများအတန်းတွင် အက်ပ်အကြံပြုချက်များ ရယူခြင်း"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"အသုံးအများဆုံးအက်ပ်များကို \'ပင်မစာမျက်နှာ\' တွင် အလွယ်တကူ ဖွင့်နိုင်သည်။ သင်၏ ပုံမှန်လုပ်ဆောင်ချက်များပေါ် အခြေခံ၍ အကြံပြုချက်များ ပြောင်းလဲပါမည်။ အောက်ခြေအတန်းရှိ အက်ပ်များကို သင်၏ \'ပင်မစာမျက်နှာ\' သို့ရွှေ့လိုက်မည်။"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"အသုံးအများဆုံးအက်ပ်များကို \'ပင်မစာမျက်နှာ\' တွင် အလွယ်တကူ သုံးနိုင်သည်။ သင်၏ ပုံမှန်အစီအစဉ်များပေါ် အခြေခံ၍ အကြံပြုချက်များ ပြောင်းလဲပါမည်။ အနှစ်သက်ဆုံးများအတန်းရှိ အက်ပ်များကို သင်၏ \'ပင်မစာမျက်နှာ\' သို့ရွှေ့လိုက်မည်။"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"အသုံးအများဆုံးအက်ပ်များကို \'ပင်မစာမျက်နှာ\' တွင် အလွယ်တကူ သုံးနိုင်သည်။ သင်၏ ပုံမှန်အစီအစဉ်များပေါ် အခြေခံ၍ အကြံပြုချက်များ ပြောင်းလဲပါမည်။ အောက်ခြေအတန်းရှိ အက်ပ်များကို ဖိုင်တွဲအသစ်သို့ ရွှေ့လိုက်မည်။"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"အက်ပ်အကြံပြုချက်များ ရယူရန်"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"မလိုပါ"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"ဆက်တင်များ"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"အသုံးအများဆုံးအက်ပ်များကို ဤနေရာတွင် ပြပြီး ပုံမှန်အစီအစဉ်များပေါ် အခြေခံ၍ ပြောင်းလဲသည်"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"အက်ပ်အကြံပြုချက်များ ရယူရန် အောက်ခြေအတန်းရှိ အက်ပ်များကို ဖိဆွဲထုတ်လိုက်ပါ"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"အက်ပ်အကြံပြုချက်များကို နေရာလွတ်သို့ ထည့်လိုက်သည်"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"အက်ပ်အကြံပြုချက်များ ဖွင့်ထားသည်"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"အက်ပ်အကြံပြုချက်များကို ပိတ်ထားသည်"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ကြိုတင်မှန်းဆထားသော အက်ပ်− <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"မျှဝေရန်"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"ဖန်သားပြင်ဓာတ်ပုံ"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"ဤလုပ်ဆောင်ချက်ကို အက်ပ် သို့မဟုတ် သင်၏အဖွဲ့အစည်းက ခွင့်မပြုပါ"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Delt skjerm"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fest"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Fritt format"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Oversikt"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Ingen nylige elementer"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Lukk"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Innstillinger for appbruk"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Fjern alt"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Nylige apper"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"Appanbefalinger"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Alle apper"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Forslag til apper"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"Få appforslag i den nederste raden på startskjermen"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"Få appforslag i favoritter-raden på startskjermen"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Få enkel tilgang til appene du bruker oftest, rett fra startskjermen. Forslagene endres basert på rutinene dine. Appene i den nederste raden flyttes opp til startskjermen."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Få enkel tilgang til appene du bruker oftest, rett fra startskjermen. Forslagene endres basert på rutinene dine. Apper i favoritter-raden blir flyttet til startskjermen."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Få enkel tilgang til appene du bruker oftest, rett fra startskjermen. Forslagene endres basert på rutinene dine. Appene i den nederste raden flyttes til en ny mappe."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"Få appforslag"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Nei takk"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Innstillinger"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"Appene som brukes oftest, vises her og endres basert på rutiner"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Dra appene vekk fra den nederste raden for å få appforslag."</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"Appforslag er lagt til på et tomt område"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"Appforslag er på"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"Appforslag er slått av"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Foreslått app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Del"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Skjermdump"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Appen eller organisasjonen din tillater ikke denne handlingen"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,16 +22,31 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"स्क्रिन विभाजन गर्नुहोस्"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"पिन गर्नुहोस्"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"फ्रिफर्म"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"परिदृश्य"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"हालसालैको कुनै पनि वस्तु छैन"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"बन्द गर्नुहोस्"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"अनुप्रयोगको उपयोगका सेटिङहरू"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"एपको उपयोगका सेटिङहरू"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"सबै खाली गर्नुहोस्"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"हालसालैका अनुप्रयोगहरू"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"हालसालैका एपहरू"</string>
|
||||
<string name="task_contents_description_with_remaining_time" msgid="4479688746574672685">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="REMAINING_TIME">%2$s</xliff:g>"</string>
|
||||
<string name="shorter_duration_less_than_one_minute" msgid="4722015666335015336">"< १ मिनेट"</string>
|
||||
<string name="time_left_for_app" msgid="3111996412933644358">"आज: <xliff:g id="TIME">%1$s</xliff:g> बाँकी"</string>
|
||||
<string name="title_app_suggestions" msgid="4185902664111965088">"अनुप्रयोगसम्बन्धी सुझावहरू"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"सबै अनुप्रयोगहरू"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"तपाईंका पूर्वानुमानित अनुप्रयोगहरू"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"सबै एपहरू"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"तपाईंका पूर्वानुमानित एपहरू"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"तपाईंको गृह स्क्रिनको पुछारको पङ्क्तिमा सिफारिस गरिएका एपहरू प्राप्त गर्नुहोस्"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"आफ्नो होम स्क्रिनको मन पर्ने नामक पङ्क्तिमा सिफारिस गरिएका एपहरू प्राप्त गर्नुहोस्"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"गृह स्क्रिनबाटै आफूले सबैभन्दा बढी प्रयोग गर्ने एप सजिलै चलाउनुहोस्। सिफारिस गरिने एपहरूको क्रम तपाईंले एप प्रयोग गर्ने समयतालिकाअनुसार बदलिने छ। फेदको पङ्क्तिमा रहेका एपहरू तपाईंको गृह स्क्रिनको सिरानमा सर्ने छन्।"</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"आफूले सबैभन्दा बढी प्रयोग गर्ने एपहरू गृह स्क्रिनबाटै सजिलैसँग खोल्नुहोस्। सिफारिस गरिने एपहरूको क्रम तपाईंको दिनचर्याअनुसार बदलिने छ। मन पर्ने नामक पङ्क्तिमा रहेका एपहरू सारेर होम स्क्रिनमा लगिने छन्।"</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"गृह स्क्रिनबाटै आफूले सबैभन्दा बढी प्रयोग गर्ने एप सजिलै चलाउनुहोस्। सिफारिस गरिने एपहरूको क्रम तपाईंले एप प्रयोग गर्ने समयतालिकाअनुसार बदलिने छ। फेदको पङ्क्तिमा रहेका एपहरू एउटा नयाँ फोल्डरमा सर्ने छन्।"</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"सिफारिस गरिएका एपहरू प्राप्त गर्नुहोस्"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"पर्दैन धन्यवाद"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"सेटिङ"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"सबैभन्दा बढी प्रयोग हुने एपहरू यहाँ देखिन्छन् र यी एपहरूको क्रम तपाईंले एप प्रयोग गर्ने समयतालिकाअनुसार बदलिरहन्छ"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"सिफारिस गरिएका एपहरू प्राप्त गर्न फेदको पङ्क्तिमा रहेका एपहरू ड्र्याग गरी हटाउनुहोस्"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"खाली ठाउँमा सिफारिस गरिएका एपहरू थपिए"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"सिफारिस गरिएका एपहरू देखाउने सुविधा सक्षम पारिएका छन्"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"सिफारिस गरिएका एपहरू देखाउने सुविधा असक्षम पारिएको छ"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"पूर्वानुमान गरिएको एप: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"सेयर गर्नुहोस्"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"स्क्रिनसट"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"यो एप वा तपाईंको सङ्गठनले यो कारबाही गर्ने अनुमति दिँदैन"</string>
|
||||
</resources>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Gesplitst scherm"</string>
|
||||
<string name="recent_task_option_pin" msgid="7929860679018978258">"Vastzetten"</string>
|
||||
<string name="recent_task_option_freeform" msgid="48863056265284071">"Vrije vorm"</string>
|
||||
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Overzicht"</string>
|
||||
<string name="recents_empty_message" msgid="7040467240571714191">"Geen recente items"</string>
|
||||
<string name="accessibility_close_task" msgid="5354563209433803643">"Sluiten"</string>
|
||||
<string name="accessibility_app_usage_settings" msgid="6312864233673544149">"Instellingen voor app-gebruik"</string>
|
||||
<string name="recents_clear_all" msgid="5328176793634888831">"Alles wissen"</string>
|
||||
<string name="accessibility_recent_apps" msgid="4058661986695117371">"Recente apps"</string>
|
||||
|
@ -34,4 +32,21 @@
|
|||
<string name="title_app_suggestions" msgid="4185902664111965088">"App-suggesties"</string>
|
||||
<string name="all_apps_label" msgid="8542784161730910663">"Alle apps"</string>
|
||||
<string name="all_apps_prediction_tip" msgid="2672336544844936186">"Je voorspelde apps"</string>
|
||||
<string name="hotseat_edu_title_migrate" msgid="306578144424489980">"App-suggesties ontvangen op de onderste rij van je startscherm"</string>
|
||||
<string name="hotseat_edu_title_migrate_landscape" msgid="3633942953997845243">"App-suggesties ontvangen op de rij met favorieten op het startscherm"</string>
|
||||
<string name="hotseat_edu_message_migrate" msgid="8927179260533775320">"Open je meestgebruikte apps gemakkelijk vanaf het startscherm. De suggesties veranderen op basis van je routines. Apps op de onderste rij worden naar je startscherm verplaatst."</string>
|
||||
<string name="hotseat_edu_message_migrate_landscape" msgid="4248943380443387697">"Open je meestgebruikte apps gemakkelijk vanaf het startscherm. De suggesties veranderen op basis van je routines. Apps op de rij met favorieten worden naar het startscherm verplaatst."</string>
|
||||
<string name="hotseat_edu_message_migrate_alt" msgid="3042360119039646356">"Open je meestgebruikte apps gemakkelijk vanaf het startscherm. De suggesties veranderen op basis van je routines. Apps op de onderste rij worden naar een nieuwe map verplaatst."</string>
|
||||
<string name="hotseat_edu_accept" msgid="1611544083278999837">"App-suggesties ontvangen"</string>
|
||||
<string name="hotseat_edu_dismiss" msgid="2781161822780201689">"Nee, bedankt"</string>
|
||||
<string name="hotseat_prediction_settings" msgid="6246554993566070818">"Instellingen"</string>
|
||||
<string name="hotseat_auto_enrolled" msgid="522100018967146807">"De meestgebruikte apps worden hier weergegeven en kunnen veranderen op basis van je routines"</string>
|
||||
<string name="hotseat_tip_no_empty_slots" msgid="1325212677738179185">"Sleep apps weg van de onderste rij om app-suggesties te ontvangen"</string>
|
||||
<string name="hotseat_tip_gaps_filled" msgid="3035673010274223538">"App-suggesties toegevoegd aan lege ruimte"</string>
|
||||
<string name="hotsaet_tip_prediction_enabled" msgid="2233554377501347650">"App-suggesties zijn ingeschakeld"</string>
|
||||
<string name="hotsaet_tip_prediction_disabled" msgid="1506426298884658491">"App-suggesties zijn uitgeschakeld"</string>
|
||||
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Voorspelde app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
|
||||
<string name="action_share" msgid="2648470652637092375">"Delen"</string>
|
||||
<string name="action_screenshot" msgid="8171125848358142917">"Screenshot"</string>
|
||||
<string name="blocked_by_policy" msgid="2071401072261365546">"Deze actie wordt niet toegestaan door de app of je organisatie"</string>
|
||||
</resources>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue