Compare commits

...
Sign in to create a new pull request.

58 commits

Author SHA1 Message Date
831c3753f2 i18n: Remove empty translations
I don't know why Weblate decided to do this
2024-11-12 17:59:32 -05:00
NXTGENCAT
3f33f87167 Translated using Weblate (Telugu)
Currently translated at 96.0% (96 of 100 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/te/
2024-10-21 11:47:36 +00:00
d61d741ebe Add monochrome launcher icons 2024-10-08 21:00:39 -04:00
a4189c9148 ui: Use accent 0 as background 2024-10-05 20:29:56 -04:00
7adae7f070 ui: Enable EdgeToEdge globally 2024-10-05 20:23:18 -04:00
bdfd8c29be ui: Handle bottom insets in SettingsFragment 2024-10-05 20:22:39 -04:00
da45e570ca ui: Use a DropDownPreference for auto freeze delay
and limit maximum to 5 minutes while we are at it
2024-10-05 20:17:04 -04:00
9e0f2306a8 ui: Handle system bar insets using AppBarLayout 2024-10-05 17:47:58 -04:00
1c4101ba2f ui: Handle system bar insets in SetupWizardActivity 2024-10-05 17:37:53 -04:00
c06e64ffe8 [WIP] Disable time picker temporarily
We need to rework this to use the MDC version
2024-10-05 17:14:45 -04:00
7db88df146 chore: Update targetSDK and dependencies 2024-10-05 17:10:52 -04:00
8bd864c895 chore: Upgrade AGP plugin 2024-10-05 16:57:13 -04:00
Anonymous
88770fa756 Translated using Weblate (Serbian)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/sr/
2024-06-16 23:53:35 +00:00
Translator
f2e475a20d Translated using Weblate (Serbian)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/sr/
2024-06-16 23:53:35 +00:00
Anonymous
86d75de501 Translated using Weblate (Telugu)
Currently translated at 11.1% (11 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/te/
2024-06-16 23:53:34 +00:00
Anonymous
60a64e3f72 Translated using Weblate (Ukrainian)
Currently translated at 15.1% (15 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/uk/
2024-06-16 23:53:34 +00:00
Anonymous
60292c53de Translated using Weblate (Persian)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/fa/
2024-06-16 23:53:34 +00:00
Anonymous
79ed7861f3 Translated using Weblate (Hebrew)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/he/
2024-06-16 23:53:34 +00:00
shop
c805d153f4 Translated using Weblate (Hebrew)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/he/
2024-06-16 23:53:34 +00:00
Anonymous
6367240299 Translated using Weblate (Bengali)
Currently translated at 8.0% (8 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/bn/
2024-06-16 23:53:33 +00:00
Anonymous
a8c7b2a015 Translated using Weblate (Korean)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ko/
2024-06-16 23:53:33 +00:00
Roland Kim
24b8b95a97 Translated using Weblate (Korean)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ko/
2024-06-16 23:53:33 +00:00
Anonymous
29f157136f Translated using Weblate (Greek)
Currently translated at 94.9% (94 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/el/
2024-06-16 23:53:33 +00:00
Anonymous
f59d4c5a2a Translated using Weblate (Indonesian)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/id/
2024-06-16 23:53:33 +00:00
Ihfandi Cahyo Aryanto
1c72a09473 Translated using Weblate (Indonesian)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/id/
2024-06-16 23:53:32 +00:00
Anonymous
c4b8c481fa Translated using Weblate (Czech)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/cs/
2024-06-16 23:53:32 +00:00
infoek.cz
5ee633ba82 Translated using Weblate (Czech)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/cs/
2024-06-16 23:53:32 +00:00
Anonymous
23f67d85c1 Translated using Weblate (Asturian)
Currently translated at 92.9% (92 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ast/
2024-06-16 23:53:32 +00:00
Anonymous
8f36146492 Translated using Weblate (Vietnamese)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/vi/
2024-06-16 23:53:32 +00:00
Quang Trung
8a97fd9b27 Translated using Weblate (Vietnamese)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/vi/
2024-06-16 23:53:31 +00:00
Anonymous
45942a1b32 Translated using Weblate (Turkish)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/tr/
2024-06-16 23:53:31 +00:00
Alparslan Sakci
39caece2a5 Translated using Weblate (Turkish)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/tr/
2024-06-16 23:53:31 +00:00
Anonymous
43597589e9 Translated using Weblate (Romanian)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ro/
2024-06-16 23:53:31 +00:00
Victor Teodor Butiu
624085c66b Translated using Weblate (Romanian)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ro/
2024-06-16 23:53:31 +00:00
Anonymous
12d60d5738 Translated using Weblate (Tamil)
Currently translated at 7.0% (7 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ta/
2024-06-16 23:53:31 +00:00
Anonymous
5183543292 Translated using Weblate (Japanese)
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ja/
2024-06-16 23:53:30 +00:00
-
1063b33b86 Translated using Weblate (Dutch)
Currently translated at 59.5% (59 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/nl/
2024-06-16 23:53:30 +00:00
Anonymous
d7d7876e88 Translated using Weblate (Dutch)
Currently translated at 59.5% (59 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/nl/
2024-06-16 23:53:30 +00:00
Anonymous
a64dbe1e92 Translated using Weblate (Spanish)
Currently translated at 94.9% (94 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/es/
2024-06-16 23:53:29 +00:00
Benjamin Torres
0d7ee6f0c4 Translated using Weblate (Spanish)
Currently translated at 94.9% (94 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/es/
2024-06-16 23:53:29 +00:00
Anonymous
d78254ab9b Translated using Weblate (Polish)
Currently translated at 92.9% (92 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/pl/
2024-06-16 23:53:29 +00:00
Skajmer
b0e128999a Translated using Weblate (Polish)
Currently translated at 92.9% (92 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/pl/
2024-06-16 23:53:29 +00:00
Anonymous
6a79aea943 Translated using Weblate (Swedish)
Currently translated at 94.9% (94 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/sv/
2024-06-16 23:53:29 +00:00
Konstantinos
16f5fcb256 Translated using Weblate (Swedish)
Currently translated at 94.9% (94 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/sv/
2024-06-16 23:53:29 +00:00
Anonymous
334c9de0c6 Translated using Weblate (French)
Currently translated at 94.9% (94 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/fr/
2024-06-16 23:53:28 +00:00
Alexandre Brochand
8ef9c2c674 Translated using Weblate (French)
Currently translated at 94.9% (94 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/fr/
2024-06-16 23:53:28 +00:00
Anonymous
79b7275bf8 Translated using Weblate (Italian)
Currently translated at 92.9% (92 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/it/
2024-06-16 23:53:28 +00:00
Random
7e8c84aa3f Translated using Weblate (Italian)
Currently translated at 92.9% (92 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/it/
2024-06-16 23:53:28 +00:00
Anonymous
e7d10d6e46 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/pt_BR/
2024-06-16 23:53:27 +00:00
Deleted User
a034e1d915 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/pt_BR/
2024-06-16 23:53:27 +00:00
Anonymous
874fccf653 Translated using Weblate (Chinese (Traditional))
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/zh_Hant/
2024-06-16 23:53:27 +00:00
Anonymous
70dcbd3d5f Translated using Weblate (German)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/de/
2024-06-16 23:53:26 +00:00
-
4997f37f7e Translated using Weblate (German)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/de/
2024-06-16 23:53:26 +00:00
Anonymous
7facef5905 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.9% (95 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/zh_Hans/
2024-06-16 23:53:26 +00:00
Anonymous
cd43df7089 Translated using Weblate (Russian)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ru/
2024-06-16 23:53:26 +00:00
solokot
005f4f747e Translated using Weblate (Russian)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ru/
2024-06-16 23:53:25 +00:00
Anonymous
a223c49f9a Translated using Weblate (Arabic)
Currently translated at 84.8% (84 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ar/
2024-06-16 23:53:25 +00:00
Roland Kim
dcfd7bf400 Translated using Weblate (Korean)
Currently translated at 100.0% (99 of 99 strings)

Translation: Shelter/Shelter
Translate-URL: http://weblate.typeblog.net/projects/shelter/shelter/ko/
2024-02-27 20:58:34 +00:00
38 changed files with 391 additions and 73 deletions

10
.idea/deploymentTargetSelector.xml generated Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>

10
.idea/migrations.xml generated Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

View file

@ -38,12 +38,12 @@ def getVersionName = { ->
}
android {
compileSdk 34
buildToolsVersion = '34.0.0'
compileSdk 35
buildToolsVersion = '35.0.0'
defaultConfig {
applicationId "net.typeblog.shelter"
minSdkVersion 24
targetSdkVersion 34
targetSdkVersion 35
versionCode getVersionCode()
versionName getVersionName()
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@ -76,13 +76,12 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.legacy:legacy-support-core-ui:1.0.0'
implementation 'androidx.fragment:fragment:1.6.1'
implementation 'androidx.appcompat:appcompat:1.7.0-alpha03'
implementation 'androidx.fragment:fragment:1.8.4'
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.preference:preference:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'com.google.android.material:material:1.10.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
implementation 'mobi.upod:time-duration-picker:1.1.3'
debugImplementation project(path: ':setup-wizard-lib', configuration: 'gingerbreadCompatDebugRuntimeElements')
releaseImplementation project(path: ':setup-wizard-lib', configuration: 'gingerbreadCompatReleaseRuntimeElements')
testImplementation 'junit:junit:4.13.2'

View file

@ -14,6 +14,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
@ -74,6 +75,7 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
EdgeToEdge.enable(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setSupportActionBar(findViewById(R.id.main_toolbar));

View file

@ -2,6 +2,7 @@ package net.typeblog.shelter.ui;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
@ -10,6 +11,7 @@ import net.typeblog.shelter.R;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
EdgeToEdge.enable(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
setSupportActionBar(findViewById(R.id.settings_toolbar));

View file

@ -9,9 +9,16 @@ import android.os.Build;
import android.os.Bundle;
import android.os.RemoteException;
import android.provider.Settings;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.preference.CheckBoxPreference;
import androidx.preference.DropDownPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
@ -20,9 +27,7 @@ import net.typeblog.shelter.services.IShelterService;
import net.typeblog.shelter.util.SettingsManager;
import net.typeblog.shelter.util.Utility;
import mobi.upod.timedurationpicker.TimeDurationPicker;
import mobi.upod.timedurationpicker.TimeDurationPickerDialogFragment;
import mobi.upod.timedurationpicker.TimeDurationUtil;
import java.util.Arrays;
public class SettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
private static final String SETTINGS_VERSION = "settings_version";
@ -37,6 +42,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
private static final String SETTINGS_SKIP_FOREGROUND = "settings_dont_freeze_foreground";
private static final String SETTINGS_PAYMENT_STUB = "settings_payment_stub";
private static final int[] AUTO_FREEZE_DELAY_SECONDS = new int[]{0, 60, 2 * 60, 5 * 60};
private SettingsManager mManager = SettingsManager.getInstance();
private IShelterService mServiceWork = null;
@ -46,7 +53,17 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
private CheckBoxPreference mPrefSkipForeground = null;
private CheckBoxPreference mPrefPaymentStub = null;
private Preference mPrefAutoFreezeDelay = null;
private DropDownPreference mPrefAutoFreezeDelay = null;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ViewCompat.setOnApplyWindowInsetsListener(view.findViewById(androidx.preference.R.id.recycler_view), (v, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPaddingRelative(0, 0, 0, insets.bottom);
return WindowInsetsCompat.CONSUMED;
});
}
@Override
public void onCreatePreferences(Bundle bundle, String s) {
@ -89,7 +106,9 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
mPrefAutoFreezeService.setChecked(mManager.getAutoFreezeServiceEnabled());
mPrefAutoFreezeService.setOnPreferenceChangeListener(this);
mPrefAutoFreezeDelay = findPreference(SETTINGS_AUTO_FREEZE_DELAY);
mPrefAutoFreezeDelay.setOnPreferenceClickListener(this::openAutoFreezeDelayPicker);
mPrefAutoFreezeDelay.setOnPreferenceChangeListener(this);
mPrefAutoFreezeDelay.setEntries(Arrays.stream(AUTO_FREEZE_DELAY_SECONDS).mapToObj((it) -> getString(R.string.format_minutes, it / 60)).toArray(String[]::new));
mPrefAutoFreezeDelay.setEntryValues(Arrays.stream(AUTO_FREEZE_DELAY_SECONDS).mapToObj(String::valueOf).toArray(String[]::new));
updateAutoFreezeDelay();
mPrefSkipForeground = (CheckBoxPreference) findPreference(SETTINGS_SKIP_FOREGROUND);
mPrefSkipForeground.setChecked(mManager.getSkipForegroundEnabled());
@ -120,9 +139,7 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
}
private void updateAutoFreezeDelay() {
mPrefAutoFreezeDelay.setSummary(TimeDurationUtil.formatMinutesSeconds(
((long) mManager.getAutoFreezeDelay()) * 1000
));
mPrefAutoFreezeDelay.setSummary(getString(R.string.format_minutes, mManager.getAutoFreezeDelay() / 60));
}
private boolean openSummaryUrl(Preference pref) {
@ -132,11 +149,6 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
return true;
}
private boolean openAutoFreezeDelayPicker(Preference pref) {
new AutoFreezeDelayPickerFragment().show(getActivity().getFragmentManager(), "dialog");
return true;
}
@Override
public boolean onPreferenceChange(Preference preference, Object newState) {
if (preference == mPrefCrossProfileFileChooser) {
@ -188,6 +200,10 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
} else if (preference == mPrefAutoFreezeService) {
mManager.setAutoFreezeServiceEnabled((boolean) newState);
return true;
} else if (preference == mPrefAutoFreezeDelay) {
mManager.setAutoFreezeDelay(Integer.parseInt((String) newState));
updateAutoFreezeDelay();
return true;
} else if (preference == mPrefSkipForeground) {
boolean enabled = (boolean) newState;
if (!enabled) {
@ -234,23 +250,4 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
return true;
}
}
public static class AutoFreezeDelayPickerFragment extends TimeDurationPickerDialogFragment {
@Override
protected long getInitialDuration() {
return ((long) SettingsManager.getInstance().getAutoFreezeDelay()) * 1000;
}
@Override
protected int setTimeUnits() {
return TimeDurationPicker.MM_SS;
}
@Override
public void onDurationSet(TimeDurationPicker view, long duration) {
long seconds = duration / 1000;
if (seconds >= Integer.MAX_VALUE) return;
SettingsManager.getInstance().setAutoFreezeDelay((int) seconds);
}
}
}

View file

@ -1,11 +1,15 @@
package net.typeblog.shelter.ui;
import androidx.activity.EdgeToEdge;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContract;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import android.app.admin.DevicePolicyManager;
@ -44,6 +48,7 @@ public class SetupWizardActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
EdgeToEdge.enable(this);
super.onCreate(savedInstanceState);
// The user could click on the "finish provisioning" notification while having removed
// this activity from the recents stack, in which case the notification will start a new
@ -219,6 +224,25 @@ public class SetupWizardActivity extends AppCompatActivity {
mWizard.setLayoutBackground(ContextCompat.getDrawable(inflater.getContext(), R.color.colorAccent));
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ViewCompat.setOnApplyWindowInsetsListener(mWizard, (v, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
mWizard.setDecorPaddingTop(insets.top);
NavigationBar nav = mWizard.getNavigationBar();
ViewGroup.LayoutParams params = nav.getLayoutParams();
params.height += insets.bottom;
nav.setLayoutParams(params);
nav.setPadding(nav.getPaddingLeft(), nav.getPaddingTop(), nav.getPaddingRight(), insets.bottom);
return WindowInsetsCompat.CONSUMED;
});
}
}
protected static abstract class TextWizardFragment extends BaseWizardFragment {

View file

@ -0,0 +1,35 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="737.01dp"
android:height="850.36dp"
android:viewportWidth="737.01"
android:viewportHeight="850.36">
<path
android:pathData="m171.04,181.02 l-85,77.59 -5.21,-6.64C50.53,317.75 31.12,390.57 28.72,463.15l28,13.74 113.38,-80 28.35,80 28.35,-26.68 56.75,29.34 56.69,-56 56.7,80 56.69,-53.36 56.69,53.36 85,-106.72 85,106.72 28.32,-26.36c-0.2,-76.35 -19.77,-153.52 -51.42,-222.96l-32.68,30.23 -85,-77.58 -56.7,51.72 -56.69,-25.86 -56.69,25.86 -28.35,-51.72 -56.69,51.72 -56.69,-25.86 -28.35,25.86zM255.12,311.81c15.66,0 28.35,19.04 28.35,42.52 -0,23.48 -12.69,42.52 -28.35,42.52 -15.66,-0 -28.35,-19.04 -28.35,-42.52 0,-9.58 2.12,-18.42 5.68,-25.53 0,0 0,-0.01 0,-0.01 0.02,-0.03 0.04,-0.06 0.06,-0.1 0.76,-1.5 1.58,-2.93 2.46,-4.27 0.01,-0.01 0.02,-0.03 0.03,-0.04 0.91,-1.37 1.88,-2.65 2.9,-3.82 0,0 0,0 0.01,-0.01 4.77,-5.48 10.74,-8.74 17.21,-8.74zM481.89,311.81c15.66,0 28.35,19.04 28.35,42.52 -0,23.48 -12.69,42.52 -28.35,42.52 -15.66,-0 -28.35,-19.04 -28.35,-42.52 0,-9.58 2.12,-18.42 5.68,-25.53 0,0 0,-0.01 0,-0.01 0.02,-0.03 0.04,-0.06 0.06,-0.1 5.18,-10.25 13.38,-16.88 22.61,-16.88z"
android:strokeWidth="8"
android:fillColor="#ffffff"
android:strokeColor="#000000"
android:fillType="evenOdd"
android:fillAlpha="0"/>
<path
android:pathData="m255.12,311.81c-6.48,0 -12.44,3.26 -17.21,8.74 2.06,-2.36 4.35,-4.31 6.79,-5.76 0.64,-0.09 1.28,-0.13 1.92,-0.14v-0.03c12.63,-0 18.95,15.26 10.02,24.19 -8.92,8.92 -24.18,2.61 -24.19,-10.01 -3.57,7.11 -5.68,15.95 -5.68,25.53 0,23.48 12.69,42.52 28.35,42.52 15.66,-0 28.35,-19.04 28.35,-42.52 -0,-23.48 -12.69,-42.52 -28.35,-42.52zM237.9,320.56c-1.02,1.18 -2,2.45 -2.9,3.82 0.91,-1.37 1.88,-2.65 2.9,-3.82zM234.97,324.42c-0.88,1.34 -1.71,2.77 -2.46,4.27 0.76,-1.5 1.58,-2.93 2.46,-4.27z"
android:fillColor="#20190a"/>
<path
android:pathData="m481.89,311.81c-9.24,0 -17.44,6.63 -22.61,16.88 3.11,-6.15 7.32,-11.01 12.19,-13.9 0.64,-0.09 1.28,-0.13 1.92,-0.14v-0.03c12.63,-0 18.95,15.26 10.02,24.19 -8.92,8.92 -24.18,2.61 -24.19,-10.01 -3.57,7.11 -5.68,15.95 -5.68,25.53 0,23.48 12.69,42.52 28.35,42.52 15.66,-0 28.35,-19.04 28.35,-42.52 -0,-23.48 -12.69,-42.52 -28.35,-42.52z"
android:fillColor="#20190a"/>
<path
android:pathData="m473.39,314.62v0.03c-0.64,0.01 -1.28,0.05 -1.92,0.14 -4.9,2.91 -9.13,7.8 -12.25,14 0,12.63 15.26,18.95 24.19,10.02 8.93,-8.93 2.61,-24.19 -10.02,-24.19z"
android:fillColor="#f9f8f4"
android:fillType="evenOdd"/>
<path
android:pathData="m246.62,314.62v0.03c-0.64,0.01 -1.28,0.05 -1.92,0.14 -4.9,2.91 -9.14,7.8 -12.25,14 -0,12.63 15.26,18.95 24.19,10.02 8.93,-8.93 2.61,-24.19 -10.02,-24.19z"
android:fillColor="#f9f8f4"
android:fillType="evenOdd"/>
<path
android:pathData="M369.51,0C259.31,0 137.21,99.48 64.9,231.69l21.14,26.92 85,-77.59 28.35,77.59 28.35,-25.86 56.69,25.86 56.69,-51.72 28.35,51.72 56.69,-25.86 56.69,25.86 56.7,-51.72 85,77.58 52,-48.11C604.67,101.83 481,0 369.51,0Z"
android:fillColor="#1a1a1a"
android:fillType="evenOdd"/>
<path
android:pathData="m595.32,396.83 l-85,106.72 -56.69,-53.36 -56.69,53.36 -56.7,-80 -56.69,56 -56.75,-29.34 -28.35,26.68 -28.35,-80 -113.38,80 -55.84,-27.4c0,0 -0.88,18.25 -0.88,27.36 0,235.75 165,373.51 368.51,373.51 203.51,0 368.5,-137.76 368.5,-373.51 0,-8.42 -0.25,-16.87 -0.75,-25.36l-55.94,52.06z"
android:fillColor="#1a1a1a"
android:fillType="evenOdd"/>
</vector>

View file

@ -8,6 +8,7 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/main_appbar"
android:fitsSystemWindows="true"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:elevation="0dp"

View file

@ -5,8 +5,10 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/settings_appbar"
android:fitsSystemWindows="true"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">

View file

@ -1,8 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/setup_wizard_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.SetupWizardActivity" />
xmlns:app="http://schemas.android.com/apk/res-auto">
<View
android:id="@+id/status_bar_spacer"
android:background="?attr/colorAccent"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/setup_wizard_container"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<FrameLayout
android:id="@+id/setup_wizard_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.SetupWizardActivity" />
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_egg_background"/>
<foreground android:drawable="@mipmap/ic_launcher_egg_foreground"/>
<monochrome>
<inset
android:drawable="@drawable/ic_launcher_egg_foreground_monochrome"
android:insetLeft="26%"
android:insetTop="26%"
android:insetRight="26%"
android:insetBottom="26%" />
</monochrome>
</adaptive-icon>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_egg_background"/>
<foreground android:drawable="@mipmap/ic_launcher_egg_foreground"/>
<monochrome>
<inset
android:drawable="@drawable/ic_launcher_egg_foreground_monochrome"
android:insetLeft="26%"
android:insetTop="26%"
android:insetRight="26%"
android:insetBottom="26%" />
</monochrome>
</adaptive-icon>

View file

@ -26,7 +26,7 @@
\nNěkteré pokročilé funcke Shelteru můžou vyžadovat více oprávnění <b>mimo</b> Pracovní profil. Když budou potřeba, Shelter se na tato oprávnění zeptá samostatně, jakmile povolíte odpovídající funkce.</string>
<string name="setup_wizard_compatibility">Kompatibilita</string>
<string name="fragment_profile_work">Shelter</string>
<string name="setup_wizard_ready">Připraven\?</string>
<string name="setup_wizard_ready">Připraven?</string>
<string name="setup_wizard_ready_text">Nyní jsme připraveni pro Vás nastavit Shelter. Nejdříve se prosím ujistěte, že Vaše zařízení <b>není</b> v režimu Nerušit, protože budete muset později <b>kliknout na oznámení</b> k dokonční nastavení.
\n
\nPokud jste připraveni, klikněte na \"Další\" pro zahájení procesu nastavení.</string>

View file

@ -85,7 +85,7 @@
<string name="documents_ui">Datei-Manager-Oberfläche</string>
<string name="settings_block_contacts_searching">Blockiere Suche nach Kontakten</string>
<string name="settings_block_contacts_searching_desc">Zugriff vom persönlichen Profil zu den Kontakten im Arbeitsprofil blockieren.</string>
<string name="setup_wizard_ready">Bereit\?</string>
<string name="setup_wizard_ready">Bereit?</string>
<string name="setup_wizard_please_wait">Bitte warten…</string>
<string name="setup_wizard_please_wait_text">Wir versuchen, das Arbeitsprofil zu initialisieren und Shelter auf deinem Gerät einzurichten.</string>
<string name="setup_wizard_failed">Einrichtung fehlgeschlagen</string>

View file

@ -99,7 +99,7 @@
\n
\nTe sugerimos que leas todas las paginas siguientes cuidadosamente.</string>
<string name="setup_wizard_permissions">Sobre los permisos</string>
<string name="setup_wizard_ready">¿Listo\?</string>
<string name="setup_wizard_ready">¿Listo?</string>
<string name="setup_wizard_compatibility">Compatibilidad</string>
<string name="search">Buscar</string>
<string name="freeze_all">Suspensión en lote</string>

View file

@ -102,7 +102,7 @@
<string name="setup_wizard_welcome">Bienvenue dans Shelter</string>
<string name="setup_wizard_permissions">Un point sur les permissions</string>
<string name="setup_wizard_compatibility">Compatibilité</string>
<string name="setup_wizard_ready">Prêt(e) \?</string>
<string name="setup_wizard_ready">Prêt(e) ?</string>
<string name="setup_wizard_welcome_text">Shelter est une application permettant d\'exécuter d\'autres application à l\'intérieur d\'un compartiment isolé. Pour cela, elle utilise la fonctionnalité &lt;b&gt;Profil Professionnel&lt;b&gt; d\'Android.
\n
\nAppuyez sur \"Suivant\", afin que nous puissions vous fournir de plus amples informations sur Shelter et vous guider dans le processus de configuration.

View file

@ -26,7 +26,7 @@
<string name="install_app_to_profile_success">Penginstalan aplikasi selesai di profil kerja.</string>
<string name="show_all">Lihat Semua Aplikasi</string>
<string name="setup_wizard_compatibility">Kesesuaian</string>
<string name="setup_wizard_ready">Siap\?</string>
<string name="setup_wizard_ready">Siap?</string>
<string name="setup_wizard_please_wait">Silakan tunggu. . .</string>
<string name="setup_wizard_please_wait_text">Kami mencoba menginisialisasi Work Profile dan menyiapkan Shelter di perangkat Anda.</string>
<string name="setup_wizard_failed">Penyiapan gagal</string>

View file

@ -108,7 +108,7 @@
<string name="setup_wizard_welcome">Benvenuti in Shelter</string>
<string name="setup_wizard_permissions">Una parola in merito alle autorizzazioni</string>
<string name="setup_wizard_compatibility">Compatibilità</string>
<string name="setup_wizard_ready">Iniziamo\?</string>
<string name="setup_wizard_ready">Iniziamo?</string>
<string name="setup_wizard_please_wait">Attendere prego…</string>
<string name="setup_wizard_please_wait_text">Stiamo provando a inizializzare il Profilo di Lavoro e configurare Shelter sul tuo dispositivo.</string>
<string name="setup_wizard_welcome_text">Shelter è un\'app che ti permette di usare altre applicazioni in un profilo isolato. Tutto questo viene fatto sfruttando la funzione <b>Profilo di Lavoro</b> di Android.

View file

@ -14,7 +14,7 @@
\nאנו ממליצים לקרוא בעיון את כל העמודים הבאים.</string>
<string name="allow_cross_profile_widgets">אפשר ווידג\'טים בפרופיל הראשי</string>
<string name="install_app_to_profile_success">התקנת האפליקציה הסתיימה בפרופיל העבודה.</string>
<string name="setup_wizard_ready">מוכן\?</string>
<string name="setup_wizard_ready">מוכן?</string>
<string name="setup_wizard_ready_text">כעת אנו מוכנים להקים עבורך את Shelter. אם המכשיר שלך פועל עם אנדרואיד 7 ומטה, אנא ודא תחילה שהמכשיר שלך <b>לא</b> במצב \'נא לא להפריע\', מכיוון שתצטרך <b>ללחוץ על הודעה</b> מאוחר יותר כדי לסיים תהליך ההגדרה.
\n
\nכשתהיה מוכן, לחץ על \"הבא\" כדי להתחיל בתהליך ההגדרה.</string>

View file

@ -7,7 +7,7 @@
<string name="setup_wizard_permissions">권한 관련 안내</string>
<string name="service_auto_freeze_desc">다음 화면 잠금이 실행될 때 Shelter가 \"활성화 후 실행\"을 통해 실행된 앱을 자동으로 비활성화 처리합니다.</string>
<string name="unfreeze_app">활성화</string>
<string name="setup_wizard_ready">준비되셨나요\?</string>
<string name="setup_wizard_ready">준비되셨나요?</string>
<string name="setup_wizard_failed">설정 실패</string>
<string name="setup_wizard_action_required">수동 조치 필요</string>
<string name="notifications_important">Shelter 알림</string>
@ -51,9 +51,9 @@
<string name="app_context_menu_title">%s 앱에 대해 수행할 작업</string>
<string name="freeze_all_success">\"자동 비활성화\" 목록에 등록된 모든 앱이 비활성화되었습니다.</string>
<string name="continue_anyway">계속 진행</string>
<string name="miui_cannot_clone">현재 MIUI 환경에서는 비 시스템 앱을 다른 프로필로 복제하는 기능이 지원되지 않습니다. 현재 시스템의 앱 스토어(예시: <b>Play Store</b>)를 다른 프로필로 복제하신 후 복제된 앱 스토어 애플리케이션에서 앱을 내려받아 주세요.</string>
<string name="miui_cannot_clone">현재 MIUI 환경에서는 비 시스템 앱을 다른 프로필로 복제하는 기능이 지원되지 않습니다. 현재 시스템의 앱 스토어(<b>Play Store</b>)를 다른 프로필로 복제하신 후 복제된 앱 스토어 애플리케이션에서 앱을 내려받아 주세요.</string>
<string name="device_admin_explanation">Shelter가 격리 작업을 진행하려면 기기 관리자 권한을 필요로 합니다.</string>
<string name="settings_cross_profile_file_chooser_desc">이 기능을 활성화하면 개인 및 직장 프로필에서 각각 상대 프로필의 파일에 접근하거나 상대 프로필 간 파일 작업을 할 수 있습니다. 이 기능은 파일 시스템 간 격리를 유지한 상태에서 문서 사용자 인터페이스(Documents UI, 보통 \"파일\" 또는 \"문서\"라는 이름을 가진 기본 파일 관리자 앱) 또는 문서 사용자 인터페이스를 지원하는 앱(문서 사용자 인터페이스를 통해 선택된 파일에 한해서만 임시적으로 접근 허용)을 통해서만 작동합니다.</string>
<string name="settings_cross_profile_file_chooser_desc">이 기능을 활성화하면 개인 및 직장 프로필에서 각각 상대 프로필의 파일에 접근하거나 상대 프로필 간 파일 작업을 할 수 있습니다. 이 기능은 파일 시스템 간 격리를 유지한 상태에서 문서 사용자 인터페이스(Documents UI, 보통 \"파일\" 또는 \"문서\"라는 이름을 가진 기본 파일 관리자 앱) 또는 이를 지원(문서 사용자 인터페이스를 통해 선택된 파일에 한해서만 임시적으로 접근 허용)하는 앱을 통해서만 작동합니다.</string>
<string name="setup_wizard_compatibility">호환성</string>
<string name="setup_wizard_please_wait">잠시만 기다려 주세요…</string>
<string name="install_app_to_profile">직장 프로필에 APK 설치하기</string>
@ -74,17 +74,17 @@
\n위 사항에 해당하지 않으며 설정 과정을 임의로 중단하지 않았다면, 큰 규모의 변형 또는 수정이 가해진 시스템 또는 Shelter와 다른 직장 프로필 관리 도구와의 충돌이 원인일 수 있으며 이 경우 정상적인 Shelter 설정 작업이 어렵습니다.
\n
\n\"다음\" 버튼을 누르시면 Shelter가 종료됩니다.</string>
<string name="launch_app_fail">\"%s\" 앱에 그래픽 인터페이스가 존재하지 않아 실행할 수 없습니다.</string>
<string name="finish_provision_title">이곳을 눌러 Shelter 설정 작업을 마무리하세요</string>
<string name="launch_app_fail">%s 앱에 그래픽 인터페이스가 존재하지 않아 실행할 수 없습니다.</string>
<string name="finish_provision_title">Shelter 설정 작업 마무리하기</string>
<string name="settings">설정</string>
<string name="settings_source_code">소스 코드</string>
<string name="service_desc">Shelter 서비스가 실행 중입니다.</string>
<string name="show_all_warning">목록에서 숨겨진 앱을 수정할 경우 앱 오작동을 비롯한 예상치 못한 현상을 유발할 수 있습니다. 다만 오류가 있는 제조사 ROM으로 인해 모든 필수 시스템 앱이 직장 프로필에서 활성화되지 않았다면 이 기능이 유용할 수 있으며, 계속 진행하시는 경우 상기한 위험을 감수하는 것입니다.</string>
<string name="show_all_warning">목록에서 숨겨진 앱을 수정할 경우 앱 오작동을 비롯한 예상치 못한 현상을 유발할 수 있습니다. 다만 오류가 있는 제조사 ROM으로 인해 모든 필수 시스템 앱이 직장 프로필에서 활성화되지 않았다면 이 기능이 유용할 수 있습니다. 계속 진행하시는 경우 상기된 위험을 감수하는 것입니다.</string>
<string name="search">검색</string>
<string name="setup_wizard_ready_text">이제 Shelter 설정 작업을 시작합니다. 본 기기가 Android 버전 7 이하를 실행 중이라면, 방해 금지 모드가 <b>꺼진 상태</b>인지 꼭 확인해 주세요. 이후 <b>푸시 알림을 눌러야</b> 설정 작업이 마무리되기 때문입니다.
\n
\n\"다음\" 버튼을 누르시면 설정 작업이 진행됩니다.</string>
<string name="finish_provision_desc">이곳을 클릭하시면 Shelter의 설정 작업이 모두 마무리됩니다.</string>
<string name="finish_provision_desc">이곳을 누르시면 Shelter의 설정 작업이 모두 마무리됩니다.</string>
<string name="settings_block_contacts_searching">연락처 검색 차단</string>
<string name="settings_block_contacts_searching_desc">개인 프로필에서 직장 프로필 내에 저장된 연락처로의 접근을 막습니다.</string>
<string name="setup_wizard_compatibility_text">Shelter는 AOSP(Android Open Source Project), Google Android(Pixel 탑재 운영 체제) 및 <b>대다수의 AOSP 기반 오픈 소스 커스텀 ROM</b>(LineageOS 등)과 같이 AOSP를 기반으로 파생된 Android 시스템들에서 개발 및 테스트되었습니다. 본 기기가 상기된 Android 시스템 중 하나를 실행하고 있다면, 이는 Shelter가 본 기기에서 올바르게 동작할 가능성이 높다는 뜻입니다. 👏
@ -108,8 +108,12 @@
<string name="list_item_disabled">[비활성] %s</string>
<string name="settings_dont_freeze_foreground_desc">화면 잠금이 실행되었을 때 포어그라운드에서 실행 중(화면에 표시 중)인 앱에 대하여 비활성화 처리를 하지 않습니다. 음악 플레이어 등의 앱을 사용하고 있을 때 유용한 기능이나, \"일괄 비활성화 바로 가기\"를 통하여 수동으로 비활성화해 주어야 합니다.</string>
<string name="work_mode_disabled">Shelter를 실행하는 도중 직장 프로필을 비활성화하신 것 같습니다. 이미 직장 프로필을 활성화하셨을 경우 Shelter를 다시 실행해 주세요.</string>
<string name="msg_device_unsupported">권한이 거부되었거나 지원지 않는 기기입니다</string>
<string name="work_profile_provision_failed">직장 프로필 구성에 실패했습니다. Shelter를 다시 실행 후 재시도해 주세요.</string>
<string name="msg_device_unsupported">권한이 거부되었거나 지원지 않는 기기입니다</string>
<string name="work_profile_provision_failed">직장 프로필 구성에 실패했습니다. Shelter를 다시 실행한 후 재시도해 보세요.</string>
<string name="unfreeze_and_launch">활성화 후 실행하기</string>
<string name="unfreeze_success">\"%s\" 앱이 활성화되었습니다</string>
<string name="payment_stub_description">모의 결제 서비스 (사용금지)</string>
<string name="settings_payment_stub_desc">개인 프로필에 모의 NFC 결제 서비스를 추가하여 [설정] - [NFC]의 비접촉 결제 옵션을 활성화합니다. 개인 프로필에 설치된 결제 앱이 없을 경우 직장 프로필에 있는 앱의 비접촉 결제 서비스 사용이 불가능한 Android 상 버그를 우회하기 위한 기능입니다.</string>
<string name="allow_cross_profile_interaction">프로필 간 상호 동작 허용</string>
<string name="settings_payment_stub">모의 결제 서비스</string>
</resources>

View file

@ -48,7 +48,7 @@
\n
\nSommige geavanceerde functies van Shelter kunnen meer toegangsrechten <b>buiten</b> het werkprofiel vereisen. Indien nodig, zal Shelter apart om die rechten vragen wanneer u de betreffende functies inschakelt.</string>
<string name="setup_wizard_compatibility">Compatibiliteit</string>
<string name="setup_wizard_ready">Klaar\?</string>
<string name="setup_wizard_ready">Klaar?</string>
<string name="setup_wizard_ready_text">We zijn nu klaar om Shelter voor je in te stellen. Zorg er eerst voor dat jouw toestel <b>niet</b> in Niet Storen modus staat, omdat je later <b>op een melding moet klikken</b> om het installatieproces af te ronden.
\n
\nAls je klaar bent, klik op \"Volgende\" om het installatieproces te beginnen.</string>

View file

@ -120,5 +120,5 @@
\nJeśli nie widzisz powiadomienia upewnij się, że nie masz włączonego trybu Nie Przeszkadzać lub spróbuj rozwinąć centrum powiadomień.
\n
\nBy zresetować Sheltera i zacząć od nowa możesz wyczyścić dane Sheltera w Ustawieniach.</string>
<string name="setup_wizard_ready">Gotowy/a\?</string>
<string name="setup_wizard_ready">Gotowy/a?</string>
</resources>

View file

@ -101,7 +101,7 @@
\n
\nClique no \"Próximo\" para sair.</string>
<string name="setup_wizard_action_required">Ação necessária</string>
<string name="setup_wizard_ready">Pronto\?</string>
<string name="setup_wizard_ready">Pronto?</string>
<string name="setup_wizard_please_wait_text">Estamos tentando criar o Perfil de Trabalho e configurar o Shelter no seu dispositivo.</string>
<string name="setup_wizard_welcome_text">O Shelter é um app que ajuda a executar outros apps em um perfil isolado. Para isto ele usa o recurso de <b>Perfil de Trabalho</b> no Android.
\n

View file

@ -98,7 +98,7 @@
\nFaceți clic pe „Următorul” și vă vom oferi mai multe informații despre Shelter și vă vom ghida prin procesul de configurare.
\n
\nVă sugerăm să citiți cu atenție toate paginile următoare.</string>
<string name="setup_wizard_ready">Pregatit\?</string>
<string name="setup_wizard_ready">Pregatit?</string>
<string name="setup_wizard_compatibility_text">Shelter este dezvoltat și testat pe derivate Android asemănătoare AOSP. Aceasta include AOSP (Android Open Source Project), Google Android (pe Pixels) și <b>majoritatea ROM-urilor personalizate open source bazate pe AOSP</b>, cum ar fi LineageOS. Dacă telefonul dvs. rulează unul dintre derivatele Android enumerate mai sus, atunci felicitări! Adăpostul va funcționa probabil corect pe dispozitivul dvs.
\n
\nUnii furnizori de dispozitive introduc personalizări foarte invazive în baza de coduri Android, ducând la conflicte, incompatibilități și comportament neașteptat. Unele ROM-uri personalizate pot introduce, de asemenea, modificări care distrug compatibilitatea, dar, în general, acestea sunt apariții mai rare în comparație cu incompatibilitățile introduse de furnizorul de telefoane.

View file

@ -90,7 +90,7 @@
<string name="setup_wizard_compatibility">Совместимость</string>
<string name="setup_wizard_failed">Установка не выполнена</string>
<string name="setup_wizard_action_required">Требуется действие</string>
<string name="setup_wizard_ready">Готовы\?</string>
<string name="setup_wizard_ready">Готовы?</string>
<string name="setup_wizard_please_wait">Подождите…</string>
<string name="setup_wizard_please_wait_text">Выполняется инициализация рабочего профиля и настройка Shelter на вашем устройстве.</string>
<string name="setup_wizard_ready_text">Приготовления к установке Shelter выполнены. Если ваше устройство работает на Android 7 и ниже, пожалуйста, убедитесь, что оно <b>не</b> в режиме \"Не беспокоить\". Вам позже потребуется <b>нажать на уведомление</b> для завершения процесса настройки.

View file

@ -32,7 +32,7 @@
\n
\nДа бисте ресетовали Шелтер и почели испочетка, можете да обришете податке Шелтера у подешавањима.</string>
<string name="uninstall_fail_system_app">Није могуће деинсталирати системске апликације на профилу над којим Шелтер нема контролу.</string>
<string name="setup_wizard_ready">Спремни\?</string>
<string name="setup_wizard_ready">Спремни?</string>
<string name="setup_wizard_please_wait">Сачекајте…</string>
<string name="setup_wizard_failed">Подешавање није успело</string>
<string name="setup_wizard_action_required">Потребна радња</string>

View file

@ -75,7 +75,7 @@
<string name="work_profile_provision_failed">Det går inte att tillhandahålla arbetsprofil. Du kan försöka igen genom att starta om Shelter.</string>
<string name="work_mode_disabled">Det verkar som att arbetsprofilen var inaktiverad när Shelter startades. Om du nu har aktiverat det, starta om Shelter.</string>
<string name="clone_fail_system_app">Det går inte att klona systemappar till en profil som Shelter inte har kontroll över.</string>
<string name="setup_wizard_ready">Redo\?</string>
<string name="setup_wizard_ready">Redo?</string>
<string name="setup_wizard_please_wait">Vänta…</string>
<string name="setup_wizard_please_wait_text">Vi försöker initiera Work Profile och konfigurera Shelter på din enhet.</string>
<string name="setup_wizard_failed">Konfigurationen misslyckades</string>

View file

@ -4,4 +4,124 @@
<string name="first_run_alert_continue">కొనసాగించు</string>
<string name="device_admin_desc">యాప్ ఐసోలేషన్ సర్వీస్</string>
<string name="device_admin_explanation">షెల్టర్ దాని ఐసోలేషన్ విధులను నిర్వహించడానికి డివైస్ అడ్మిన్ గా మారాలి.</string>
<string name="launch_app_fail">యాప్ %sని ప్రారంభించలేరు, ఎందుకంటే దానికి GUI లేదు.</string>
<string name="settings_dont_freeze_foreground_desc">మీ స్క్రీన్‌ను లాక్ చేయడం సమయంలో ముందంజ యాప్‌లను (కనిపించే కార్యకలాపం ఉన్న) ఫ్రిజ్ చేయకండి. ఇది సంగీత ప్లేయర్‌ల వంటి యాప్‌లకు ఉపయోగకరంగా ఉండవచ్చు, కానీ తర్వాత \"బ్యాచ్ ఫ్రిజ్ షార్ట్‌కట్\" ద్వారా వాటిని చేతితో ఫ్రిజ్ చేయాలి.</string>
<string name="settings_cross_profile_file_chooser">ఫైల్ షట్ల్</string>
<string name="app_installing">ఇన్‌స్టాల్ చేయబడుతోంది...</string>
<string name="msg_device_unsupported">అనుమతి నిరాకరించబడింది లేదా మద్దతు పొందని పరికరం</string>
<string name="settings_translate">అనువాదం</string>
<string name="setup_wizard_please_wait">దయచేసి వేచి ఉండండి…</string>
<string name="list_item_disabled">[ఫ్రోజెన్] %s</string>
<string name="setup_wizard_ready_text">మేము ఇప్పుడు మీ కోసం షెల్టర్‌ని సెటప్ చేయడానికి సిద్ధంగా ఉన్నాము. మీ పరికరం Android 7 లేదా అంతకంటే తక్కువగా నడుస్తోంటే, మొదట మీ పరికరం \"Do Not Disturb\" మోడ్‌లో లేదని నిర్ధారించుకోండి, ఎందుకంటే మీరు సెటప్ ప్రక్రియను పూర్తి చేయడానికి తర్వాత ఒక నోటిఫికేషన్‌పై క్లిక్ చేయాలి.
\n
\nమీరు సిద్ధంగా ఉన్నప్పుడు, సెటప్ ప్రక్రియ ప్రారంభించడానికి \"తదుపరి\"పై క్లిక్ చేయండి.</string>
<string name="settings_block_contacts_searching_desc">కార్య ప్రొఫైల్‌లోని సంప్రదింపులకు ప్రధాన ప్రొఫైల్ నుండి యాక్సెస్‌ను తిరస్కరించండి.</string>
<string name="payment_stub_description">చెల్లింపు సేవ స్టబ్ (ఉపయోగించవద్దు)</string>
<string name="setup_wizard_welcome_text">\"షెల్టర్\" అనేది ఇతర యాప్‌లను వేరుప్రొఫైల్‌లో నడపడంలో మీకు సహాయం చేసే యాప్. ఇది ఆండ్రాయిడ్‌లోని <b>వర్క్ ప్రొఫైల్</b> ఫీచర్‌ను ఉపయోగించడం ద్వారా పని చేస్తుంది.
\n
\n\"తదుపరి\"ను క్లిక్ చేయండి, మేము మీకు షెల్టర్ గురించి మరిన్ని వివరాలు అందించాము మరియు సెటప్ ప్రక్రియలో మిమ్మల్ని మార్గనిర్దేశం చేస్తాము.
\n
\nక్రిది పేజీలన్నీ జాగ్రత్తగా చదవాలని మేము సిఫార్సు చేస్తాము.</string>
<string name="settings_interaction">ఇంటరాక్షన్</string>
<string name="finish_provision_desc">అభినందనలు! షెల్టర్‌ని సెటప్ చేయడం పూర్తి చేయడానికి మీరు ఒక్క క్లిక్ దూరంలో ఉన్నారు.</string>
<string name="show_all_warning">జాబితాలోని దాచిన యాప్‌లను మానిప్యులేట్ చేయడం వల్ల క్రాష్‌లు మరియు వివిధ రకాల అనూహ్య ప్రవర్తనలు కలిగించవచ్చు. అయితే, ఫాల్టీ విక్రేత-కస్టమైజ్డ్ ROMలు వర్క్ ప్రొఫైల్‌లో అన్ని అవసరమైన సిస్టమ్ యాప్లను డిఫాల్ట్‌గా ఎనేబుల్ చేయని సమయంలో ఈ ఫీచర్ ఉపయోగకరంగా ఉండవచ్చు. మీరు కొనసాగితే, మీరు మీ స్వంతంగా ఉంటారు.</string>
<string name="settings_block_contacts_searching">సంప్రదింపుల అన్వేషణను అడ్డుకోండి</string>
<string name="settings_cross_profile_file_chooser_desc">ఇది ఎనేబుల్ చేసినప్పుడు, మీరు షెల్టర్‌లో ఫైల్‌లను బ్రౌజ్ / వీక్షించడానికి / ఎంచుకోవడానికి / కాపీ చేయడానికి ప్రధాన ప్రొఫైల్ నుండి మరియు పునాదిగా, డాక్యుమెంట్స్ UI (మీ లాంచర్‌లో ఫైల్‌లు లేదా డాక్యుమెంట్స్ అని పిలవబడుతుంది) లేదా డాక్యుమెంట్స్ UI మద్దతు ఉన్న అనువర్తనాలను మాత్రమే ఉపయోగించి చేసుకోగలరు (అవి డాక్యుమెంట్స్ UIలో మీరు ఎంచుకున్న ఫైల్‌లకు తాత్కాలిక యాక్సెస్ పొందుతాయి), అయితే ఫైల్ సిస్టమ్ ఆర్థికంగా ఇన్సొలేషన్‌ను ఉంచుతుంది.</string>
<string name="provision_finished">షెల్టర్ సెటప్ పూర్తి. ఇప్పుడు షెల్టర్‌ను పునఃప్రారంభించటం జరుగుతోంది. షెల్టర్ ఆటోమేటిక్‌గా ప్రారంభమైతే, మీ లాంచర్ నుండి మళ్లీ ప్రారంభించవచ్చు.</string>
<string name="settings_payment_stub_desc">ప్రధాన ప్రొఫైల్‌లో ఒక జట్టుపై NFC చెల్లింపు సేవను ఎనేబుల్ చేయండి, తద్వారా సెట్టింగ్‌లలో - NFC క్రింద ఉన్న నిర్లక్ష్య చెల్లింపుల ఎంపిక ఎనేబుల్ అవుతుంది, ఇది మీకు వర్క్ ప్రొఫైల్‌లో చెల్లింపు అనువర్తనాన్ని ఎంచుకోవడానికి అనుమతిస్తుంది. ఇది ప్రధాన ప్రొఫైల్‌లో అందుబాటులో లేదు అంటే వర్క్ ప్రొఫైల్‌లో చెల్లింపు అనువర్తనాన్ని ఎంచుకోవడం అసాధ్యమైన ఆండ్రాయిడ్ బగ్‌ను చుట్టుకుంటుంది.</string>
<string name="freeze_all">బ్యాచ్ ఫ్రీజ్</string>
<string name="notifications_important">షెల్టర్ ముఖ్యమైనది</string>
<string name="freeze_success">అనువర్తనం \"%s\" విజయవంతంగా ఫ్రిజ్ చేయబడింది</string>
<string name="request_system_alert">షెల్టర్‌కు ఫైల్ షటిల్ సరిగ్గా పనిచేయడానికి <b>ఇతర యాప్‌లపై డ్రా చేయడం</b> అవసరం. \"ఓకే\" బటన్‌ను నొక్కిన తర్వాత డైలాగ్‌లో చూపించిన రెండు (వ్యక్తిగత / వర్క్) షెల్టర్ యాప్‌లకు ఈ అనుమతిని ఎనేబుల్ చేయండి. ఈ అనుమతి ఫైల్ షటిల్ సేవలను బ్యాక్‌గ్రౌండ్‌లో ప్రారంభించడానికి ఉపయోగించబడుతుంది.</string>
<string name="settings_patreon_url" translatable="false"/>
<string name="setup_wizard_action_required_text">మీరు ఇప్పుడు షెల్టర్ నుండి ఒక నోటిఫికేషన్‌ను చూడాలి. <b>దయచేసి ఆ నోటిఫికేషన్‌ను నొక్కండి</b> సెటప్ ప్రక్రియను ముగించడానికి.
\n
\nమీరు నోటిఫికేషన్‌ను చూడకపోతే, మీ పరికరం \"డో నాట్ డిస్టర్బ్\" మోడ్‌లో లేదు అని నిర్ధారించుకోండి మరియు నోటిఫికేషన్ సెంటర్‌ను కిందకి పుల్లండి.
\n
\nషెల్టర్ను రీసెట్ చేసి మళ్లీ ప్రారంభించడానికి, సెటింగ్స్‌లో షెల్టర్ యొక్క డేటాను క్లియర్ చేయవచ్చు.</string>
<string name="create_freeze_all_shortcut">బ్యాచ్ ఫ్రీజ్ సత్వరం సృష్టించండి</string>
<string name="clone_to_work_profile">షెల్టర్ (వర్క్ ప్రొఫైల్)కి క్లోన్ చేయండి</string>
<string name="allow_cross_profile_widgets">ప్రధాన ప్రొఫైల్‌లో విజెట్‌లను అనుమతించండి</string>
<string name="freeze_all_success">\"ఆటో ఫ్రిజ్\" జాబితాలోని అన్ని యాప్‌లు విజయవంతంగా ఫ్రిజ్ చేయబడ్డాయి.</string>
<string name="service_auto_freeze_now">ఇప్పుడు ఫ్రీజ్ చేయండి</string>
<string name="settings_bug_report">బగ్ నివేదిక / ఇష్యూ ట్రాకర్</string>
<string name="uninstall_app">అన్‌ఇన్‌స్టాల్ చేయండి</string>
<string name="setup_wizard_action_required"/>
<string name="setup_wizard_compatibility">అనుకూలత</string>
<string name="service_auto_freeze_title">ఆటో-ఫ్రీజ్ పెండింగ్‌లో ఉంది</string>
<string name="allow_cross_profile_interaction">క్రాస్-ప్రొఫైల్ ఇంటరాక్షన్‌ను అనుమతించండి</string>
<string name="settings_about">గురించి</string>
<string name="setup_wizard_failed_text">మేము మీ కోసం షెల్టర్‌ను సెటప్ చేయలేకపోయామని మీకు తెలియజేయడానికి మాకు దురదృష్టం ఉంది.
\n
\nమీ పరికరంలో ఇప్పటికే ఒక వర్క్ ప్రొఫైల్ ఉంటే, అది షెల్టర్ యొక్క గత ఇన్స్టాలేషన్ లేదా మరొక అనువర్తనంలోనూ, షెల్టర్ ముందుకు సాగడానికి ముందు దాన్ని సెటింగ్‌లలో -&gt; ఖాతా ద్వారా తొలగించాలి.
\n
\nలేకపోతే, మీరు సెటప్‌ను చేతితో రద్దు చేయకపోతే, సెటప్ విఫలమైన కారణం సాధారణంగా చాలా మార్పులు చేసిన సిస్టమ్ లేదా షెల్టర్ మరియు ఇతర వర్క్ ప్రొఫైల్ మేనేజర్ల మధ్య సంకర్షణగా ఉంటుంది. దురదృష్టవశాత్తు, దీనిపై మేము చేసేMuch చేయడం లేదు.
\n
\nమీరైతే \"తదుపరి\"పై క్లిక్ చేసి బయటకు వెళ్ళండి.</string>
<string name="miui_cannot_clone">MIUIలో మరో ప్రొఫైలుకు నాన్-సిస్టమ్ యాప్‌లను క్లోన్ చేయడం ప్రస్తుతం సాధ్యం కాదు. దయచేసి మీ సిస్టమ్ యొక్క యాప్ స్టోర్ (ఉదాహరణకు, <b>ప్లే స్టోర్</b>)ని ఇతర ప్రొఫైలుకు క్లోన్ చేసి, అక్కడ నుండి యాప్‌లను ఇన్‌స్టాల్ చేయండి.</string>
<string name="settings_translate_url" translatable="false"/>
<string name="service_title">షెల్టర్ సేవ</string>
<string name="batch_operation">బ్యాచ్ ఆపరేషన్</string>
<string name="unfreeze_and_launch">అన్‌ఫ్రీజ్ చేసి ప్రారంభించండి</string>
<string name="settings_services">సేవలు</string>
<string name="settings_auto_freeze_service">ఆటో ఫ్రిజ్ సేవ</string>
<string name="work_profile_provision_failed">వర్క్ ప్రొఫైల్‌ను అందుబాటులోకి తీసుకోలేకపోతున్నాము. షెల్టర్‌ను పునఃప్రారంభించి మళ్లీ ప్రయత్నించండి.</string>
<string name="service_auto_freeze_desc">షెల్టర్ తదుపరి స్క్రీన్ లాక్ ఈవెంట్‌లో \"అన్‌ఫ్రీజ్ &amp; లాంచ్\" నుండి ప్రారంభించబడిన యాప్‌లను ఆటో-ఫ్రీజ్ చేస్తుంది.</string>
<string name="uninstall_success">అనువర్తనం \"%s\" విజయవంతంగా అన్‌ఇన్‌స్టాల్ చేయబడింది</string>
<string name="unfreeze_app">అన్‌ఫ్రిజ్</string>
<string name="clone_fail_system_app">షెల్టర్ కంట్రోల్ లో లేని ప్రొఫైల్‌కు సిస్టమ్ యాప్‌లను క్లోన్ చేయలేరు.</string>
<string name="setup_wizard_failed">సెటప్ విఫలమైంది</string>
<string name="work_profile_not_found">వర్క్ ప్రొఫైల్ కనుగొనబడలేదు. ప్రొఫైల్‌ను మళ్లీ అందుబాటులోకి తీసుకురావడానికి దయచేసి యాప్‌ను పునఃప్రారంభించండి.</string>
<string name="unfreeze_success">అనువర్తనం \"%s\" విజయవంతంగా అన్‌ఫ్రిజ్ చేయబడింది</string>
<string name="settings_version">వర్షన్</string>
<string name="create_unfreeze_shortcut">అన్‌ఫ్రిజ్ మరియు/లేదా ప్రారంభ Shortcutని సృష్టించు</string>
<string name="request_storage_manager">షెల్టర్‌కు ఫైల్ షటిల్ కోసం <b>అన్ని ఫైళ్లకు</b> ప్రాప్యత అవసరం. \"ఓకే\" బటన్‌ను నొక్కిన తర్వాత డైలాగ్‌లో చూపించిన రెండు (వ్యక్తిగత / వర్క్) షెల్టర్ యాప్‌లకు ఈ అనుమతిని ఎనేబుల్ చేయండి.</string>
<string name="documents_ui">డాక్యుమెంట్స్ UIని తెరువు</string>
<string name="setup_wizard_please_wait_text">మేము మీ పరికరంలో వర్క్ ప్రొఫైల్‌ను ప్రారంభించడానికి మరియు షెల్టర్‌ను సెటప్ చేయడానికి ప్రయత్నిస్తున్నాము.</string>
<string name="launch">ప్రారంభించు</string>
<string name="setup_wizard_permissions_text">డిఫాల్ట్‌గా, షెల్టర్ ఏ వ్యక్తిగత అనుమతులను అడగదు. అయితే, మీరు సెటప్ ప్రక్రియను కొనసాగించిన తర్వాత, షెల్టర్ వర్క్ ప్రొఫైల్‌ను సెటప్ చేయడానికి ప్రయత్నిస్తుంది, అందువల్ల పేర్కొన్న ప్రొఫైల్‌కు <b>ప్రొఫైల్ మేనేజర్</b> గా మారుతుంది.
\n
\nదీని ద్వారా షెల్టర్‌కు ఆ ప్రొఫైల్‌లో పరికర పరిపాలకుడి (డివైస్ అడ్మిన్) అనుమతులకు సమానమైన విస్తృత అనుమతుల జాబితా లభిస్తుంది, అయితే అవి ఆ ప్రొఫైల్‌కు మాత్రమే పరిమితమవుతాయి. షెల్టర్ యొక్క మెజారిటీ ఫీచర్ల కోసం ప్రొఫైల్ మేనేజర్‌గా ఉండటం అవసరం.
\n
\nషెల్టర్ యొక్క కొన్ని అధునాతన ఫీచర్లు వర్క్ ప్రొఫైల్ <b>బయట</b> మరిన్ని అనుమతులను అవసరం కావచ్చు. అవసరమైనప్పుడు, మీరు సంబంధిత ఫీచర్‌లను ప్రారంభించినప్పుడు, షెల్టర్ ఆ అనుమతులను వేరుగా అడుగుతుంది.</string>
<string name="fragment_profile_work">షెల్టర్</string>
<string name="install_app_to_profile">షెల్టర్‌లో APK ఇన్‌స్టాల్ చేయండి</string>
<string name="clone_success">అనువర్తనం \"%s\" విజయవంతంగా క్లోన్ చేయబడింది</string>
<string name="work_mode_disabled">మీరు షెల్టర్‌ను ప్రారంభించే సమయానికి వర్క్ మోడ్‌ను అడ్డించారు అనిపిస్తోంది. మీరు ఇప్పుడు దీన్ని ఎనేబుల్ చేసినట్లయితే, దయచేసి షెల్టర్‌ను మళ్లీ ప్రారంభించండి.</string>
<string name="settings_bug_report_url" translatable="false"/>
<string name="settings_source_code">సోర్స్ కోడ్</string>
<string name="search">శోధించండి</string>
<string name="unsupported_launcher">మీ లాంచర్‌కు షార్ట్‌కట్స్‌ను జోడించలేరు. మరింత సమాచారం కోసం దయచేసి డెవలపర్‌ను సంప్రదించండి.</string>
<string name="auto_freeze">ఆటో ఫ్రీజ్</string>
<string name="service_desc">షెల్టర్ ఇప్పుడు నడుస్తోంది…</string>
<string name="settings_auto_freeze_delay">ఆటో ఫ్రిజ్ ఆలస్యం</string>
<string name="setup_wizard_compatibility_text">షెల్టర్ AOSP లాంటి ఆండ్రాయిడ్ డెరివేటివ్‌లపై అభివృద్ధి చేయబడింది మరియు పరీక్షించబడింది. ఇందులో AOSP (ఆండ్రాయిడ్ ఓపెన్ సోర్స్ ప్రాజెక్ట్), Google Android (Pixelsపై), మరియు <b>LineageOS వంటి AOSP ఆధారిత ఓపెన్ సోర్స్ కస్టమ్ ROMలు</b> ఎక్కువగా ఉన్నాయి. మీ ఫోన్ పై ఉంచిన ఆండ్రాయిడ్ డెరివేటివ్‌లలో ఏదైనా ఉంటే, అభినందనలు! షెల్టర్ మీ పరికరంలో సరిగా పనిచేసే అవకాశం ఉంది.
\n
\nకొతమది పరికర తయారీదారులు ఆండ్రాయిడ్ కోడ్ బేస్‌లో చాలా దూకుడైన అనుకూలీకరణలు ప్రవేశపెడతారు, ఇది సంగర్షణలు, అనుకూలత సమస్యలు మరియు అనూహ్య ప్రవర్తనకు కారణమవుతుంది. కొంతమంది కస్టమ్ ROMలు కూడా అనుకూలతను విచ్ఛిన్నం చేసే మార్పులను ప్రవేశపెట్టవచ్చు, కానీ సాధారణంగా ఇవి ఫోన్ తయారీదారుల మార్పులతో పోలిస్తే చాలా అరుదుగా జరుగుతాయి.
\n
\nషెల్టర్ కేవలం సిస్టమ్ అందించే వర్క్ ప్రొఫైల్ ఫీచర్‌కు ఇన్టర్ఫేస్ మాత్రమే. సిస్టమ్ అందించే ఫీచర్ పనిచేయకపోతే లేదా ప్రామాణికం కాకపోతే, <b>షెల్టర్ స్వతహాగా ఆ సమస్యను పరిష్కరించలేము</b>. మీరు ప్రస్తుతం వర్క్ ప్రొఫైల్‌లను విరమించడానికి ప్రసిద్ధి చెందిన విక్రేత-మార్పుచేసిన ఆండ్రాయిడ్ వర్షన్‌ను ఉపయోగిస్తున్నట్లయితే, <b>మీకు హెచ్చరిక ఇచ్చాము</b>. అయినప్పటికీ మీరు కొనసాగవచ్చు, కానీ ఈ పరిస్థితులలో షెల్టర్ సరైన ప్రవర్తనకాని గ్యారంటీ లేదు.</string>
<string name="finish_provision_title">షెల్టర్‌ని సెటప్ చేయడానికి ఇక్కడ క్లిక్ చేయండి</string>
<string name="request_usage_stats">షెల్టర్‌కు ఇది చేయడానికి <b>ఉపయోగం స్థితులు</b> అనుమతి అవసరం. \"ఓకే\" బటన్‌ను నొక్కిన తర్వాత డైలాగ్‌లో చూపిన రెండు షెల్టర్ యాప్‌లకు ఈ అనుమతిని ఎనేబుల్ చేయండి. అది చేయనట్లయితే, ఈ ఫీచర్ సరిగ్గా పనిచేయదు.</string>
<string name="device_admin_label" translatable="false"/>
<string name="setup_wizard_permissions">అనుమతుల గురించి ఒక మాట</string>
<string name="install_app_to_profile_success">వర్క్ ప్రొఫైల్‌లో అప్లికేషన్ ఇన్‌స్టాలేషన్ పూర్తి చేయబడింది.</string>
<string name="fragment_profile_main">ప్రధాన</string>
<string name="shortcut_create_success">మీ లాంచర్‌పై షార్ట్‌కట్ సృష్టించబడింది.</string>
<string name="settings">సెట్టింగ్స్</string>
<string name="settings_dont_freeze_foreground">ముఖ్యమైన యాప్‌లను తొలగించు</string>
<string name="settings_payment_stub">చెల్లింపు సేవ స్టబ్</string>
<string name="app_context_menu_title">%s కోసం ఆపరేషన్స్</string>
<string name="uninstall_fail_system_app">షెల్టర్ కంట్రోల్ లో లేని ప్రొఫైల్‌లో సిస్టమ్ యాప్‌లను అన్‌ఇన్‌స్టాల్ చేయలేరు.</string>
<string name="continue_anyway">ఏదైనా కొనసాగించండి</string>
<string name="app_name" translatable="false"/>
<string name="freeze_app">ఫ్రిజ్</string>
<string name="first_run_alert_cancel">వీడ్కోలు</string>
<string name="setup_wizard_ready">సిద్ధంగా ఉన్నారా?</string>
<string name="settings_source_code_url" translatable="false"/>
<string name="settings_auto_freeze_service_desc">స్క్రీన్ లాక్ అయినప్పుడు, \"అన్‌ఫ్రిజ్ &amp; లాంచ్ షార్ట్‌కట్\" నుండి ప్రారంభించిన యాప్‌లను ఆటోమేటిక్‌గా ఫ్రిజ్ చేయండి.</string>
<string name="clone_to_main_profile">ప్రధాన ప్రొఫైల్‌కి క్లోన్ చేయండి</string>
<string name="show_all">అన్ని యాప్‌లను చూపించు</string>
<string name="settings_patreon" translatable="false"/>
<string name="freeze_all_shortcut">ఫ్రీజ్ చేయండి</string>
<string name="format_minutes">%d నిమిషాలు</string>
</resources>

View file

@ -3,7 +3,7 @@
<string name="setup_wizard_compatibility">Uyumluluk</string>
<string name="setup_wizard_permissions">İzinler hakkında</string>
<string name="setup_wizard_action_required">Eylem gerekli</string>
<string name="setup_wizard_ready">Hazır mısınız\?</string>
<string name="setup_wizard_ready">Hazır mısınız?</string>
<string name="settings">Ayarlar</string>
<string name="settings_version">Sürüm</string>
<string name="settings_about">Hakkında</string>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">@android:color/system_accent1_10</color>
<color name="colorPrimary">@android:color/system_accent1_0</color>
<color name="colorAccent">@android:color/system_accent1_500</color>
<color name="colorAccentSetupWizard">@android:color/system_accent3_500</color>
<color name="colorNavigationBar">@android:color/system_accent1_100</color>

View file

@ -23,7 +23,7 @@
<string name="device_admin_explanation">Shelter cần trở thành Quản trị viên thiết bị để thực hiện các công việc cô lập của nó.</string>
<string name="setup_wizard_permissions">Một lời về các quyền</string>
<string name="setup_wizard_compatibility">Sự tương thích</string>
<string name="setup_wizard_ready">Sẵn sàng chưa\?</string>
<string name="setup_wizard_ready">Sẵn sàng chưa?</string>
<string name="setup_wizard_please_wait">Vui lòng đợi…</string>
<string name="setup_wizard_failed">Thiết lập thất bại</string>
<string name="setup_wizard_action_required">Yêu cầu hành động</string>

View file

@ -114,4 +114,7 @@
<!-- MIUI -->
<string name="miui_cannot_clone">Cloning non-system apps to another profile is currently not possible on MIUI. Please clone your system\'s app store (e.g. <b>Play Store</b>) into the other profile and then install apps from there.</string>
<string name="continue_anyway">Continue anyway</string>
<!-- Formats -->
<string name="format_minutes">%d min</string>
</resources>

View file

@ -30,7 +30,7 @@
android:title="@string/settings_auto_freeze_service"
android:summary="@string/settings_auto_freeze_service_desc" />
<androidx.preference.Preference
<androidx.preference.DropDownPreference
android:dependency="settings_auto_freeze_service"
android:key="settings_auto_freeze_delay"
android:title="@string/settings_auto_freeze_delay" />

69
art/egg_f_monochrome.svg Normal file
View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
id="c5e7cda2-40db-4fe8-bf88-df9f364d243b"
data-name="EGG"
viewBox="0 0 737.01174 850.35934"
version="1.1"
sodipodi:docname="egg_f_monochrome.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
width="737.01172"
height="850.35931"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.87215581"
inkscape:cx="488.44483"
inkscape:cy="250.52863"
inkscape:window-width="1916"
inkscape:window-height="1026"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="c5e7cda2-40db-4fe8-bf88-df9f364d243b"
showgrid="false" />
<defs
id="defs1">
<style
id="style1">.ffca8004-faa4-460f-9db2-0ce456f4982b{opacity:0.2;}.\34 34927b1-b62e-41a1-85d4-12dc9e893b7e{fill:#efbc47;}.\30 aa0fe2b-2b82-41a2-a160-82ad7d75e0ca,.\32 36ecd15-c982-4eb5-93ac-b08221203b4e,.\34 34927b1-b62e-41a1-85d4-12dc9e893b7e,.\38 d0f6148-f92c-4962-83ab-fd87f0e1ea6b,.d1103f53-cdd8-4e15-b9ef-ecdc9c405dfb{fill-rule:evenodd;}.d1103f53-cdd8-4e15-b9ef-ecdc9c405dfb{fill:#e2cdb3;}.\32 36ecd15-c982-4eb5-93ac-b08221203b4e{fill:#fcf1e3;}.\37 958d8f3-6a5a-4841-ae4a-57eb7ddf450c{fill:#20190a;}.\38 d0f6148-f92c-4962-83ab-fd87f0e1ea6b{fill:#f9f8f4;}.\30 aa0fe2b-2b82-41a2-a160-82ad7d75e0ca{fill:#f9e4c4;}</style>
</defs>
<title
id="title1">egg_f</title>
<path
d="m 171.041,181.0195 -85,77.5898 -5.2129,-6.6367 C 50.5274,317.7463 31.1249,390.5744 28.7168,463.1484 l 28.0039,13.7422 113.3809,-80 28.3496,80 28.3496,-26.6797 56.75,29.3398 56.6895,-56 56.7011,80 56.6895,-53.3613 56.6894,53.3613 85,-106.7207 85,106.7207 28.3223,-26.3574 c -0.1951,-76.3504 -19.7698,-153.5206 -51.416,-222.9551 l -32.6758,30.2325 -85,-77.5801 -56.6992,51.7187 -56.6914,-25.8593 -56.6895,25.8593 -28.3496,-51.7187 -56.6894,51.7187 -56.6914,-25.8593 -28.3497,25.8593 z m 84.0801,130.791 c 15.6569,3e-4 28.3494,19.0369 28.3496,42.5195 -2e-4,23.4827 -12.6927,42.5193 -28.3496,42.5196 -15.6569,-3e-4 -28.3494,-19.0369 -28.3496,-42.5196 1e-4,-9.5818 2.116,-18.4211 5.6816,-25.5312 0,0 0,-0.01 0,-0.01 0.017,-0.034 0.039,-0.063 0.057,-0.098 0.7592,-1.504 1.5817,-2.9311 2.4649,-4.2695 0.01,-0.013 0.016,-0.028 0.025,-0.041 0.9072,-1.3713 1.8781,-2.6457 2.9023,-3.8223 0,0 0,0 0.01,-0.01 4.7732,-5.4808 10.739,-8.7441 17.2148,-8.7442 z m 226.7695,0 c 15.657,3e-4 28.3495,19.0369 28.3497,42.5195 -2e-4,23.4827 -12.6927,42.5193 -28.3497,42.5196 -15.6569,-3e-4 -28.3494,-19.0369 -28.3496,-42.5196 10e-5,-9.5818 2.116,-18.4211 5.6817,-25.5312 0,0 0,-0.01 0,-0.01 0.017,-0.034 0.039,-0.063 0.057,-0.098 5.1759,-10.2541 13.377,-16.8826 22.6132,-16.8828 z"
style="fill:#ffffff;fill-opacity:0;fill-rule:evenodd;stroke:#000000;stroke-width:8;stroke-dasharray:none"
id="path24" />
<path
d="m 255.1211,311.8105 c -6.4758,1e-4 -12.4416,3.2634 -17.2148,8.7442 2.0607,-2.3603 4.3456,-4.3092 6.7949,-5.7637 0.6364,-0.087 1.2776,-0.1343 1.9199,-0.1406 v -0.029 c 12.625,-10e-5 18.9457,15.2633 10.0195,24.1894 -8.9241,8.9241 -24.1807,2.6076 -24.1875,-10.0117 -3.5656,7.1101 -5.6815,15.9493 -5.6816,25.5312 2e-4,23.4828 12.6926,42.5193 28.3496,42.5196 15.657,-3e-4 28.3494,-19.0368 28.3496,-42.5196 -2e-4,-23.4827 -12.6926,-42.5192 -28.3496,-42.5195 z m -17.2207,8.75 c -1.0242,1.1766 -1.9951,2.451 -2.9023,3.8223 0.9076,-1.3688 1.8766,-2.6469 2.9023,-3.8223 z m -2.9277,3.8633 c -0.8832,1.3384 -1.7057,2.7655 -2.4649,4.2695 0.7585,-1.5023 1.5802,-2.9318 2.4649,-4.2695 z"
style="fill:#20190a"
id="path21" />
<path
d="m 481.8906,311.8105 c -9.2362,2e-4 -17.4373,6.6287 -22.6132,16.8828 3.1149,-6.151 7.3206,-11.0085 12.1933,-13.9023 0.6364,-0.087 1.2776,-0.1343 1.9199,-0.1406 v -0.029 c 12.6251,-10e-5 18.9457,15.2633 10.0196,24.1894 -8.9242,8.9242 -24.1808,2.6077 -24.1875,-10.0117 -3.5657,7.1101 -5.6816,15.9493 -5.6817,25.5312 2e-4,23.4828 12.6927,42.5193 28.3496,42.5196 15.657,-3e-4 28.3495,-19.0368 28.3497,-42.5196 -2e-4,-23.4827 -12.6927,-42.5192 -28.3497,-42.5195 z"
style="fill:#20190a"
id="path20" />
<path
d="m 473.3906,314.6211 v 0.029 c -0.6423,0.01 -1.2835,0.053 -1.9199,0.1406 -4.9,2.91 -9.13,7.8 -12.25,14 0,12.625 15.2633,18.9457 24.1895,10.0195 8.9261,-8.9261 2.6055,-24.1895 -10.0196,-24.1894 z"
style="fill:#f9f8f4;fill-rule:evenodd"
id="path19" />
<path
d="m 246.6211,314.6211 v 0.029 c -0.6423,0.01 -1.2835,0.053 -1.9199,0.1406 -4.9,2.91 -9.14,7.8 -12.25,14 -1e-4,12.625 15.2633,18.9457 24.1894,10.0195 8.9262,-8.9261 2.6055,-24.1895 -10.0195,-24.1894 z"
style="fill:#f9f8f4;fill-rule:evenodd"
id="path18" />
<path
d="M 369.5117,0 C 259.312,0 137.2103,99.4797 64.9004,231.6894 l 21.1406,26.9199 85,-77.5898 28.3496,77.5898 28.3497,-25.8593 56.6914,25.8593 56.6894,-51.7187 28.3496,51.7187 56.6895,-25.8593 56.6914,25.8593 56.6992,-51.7187 85,77.5801 52,-48.1114 C 604.6709,101.8296 481.0015,0 369.5117,0 Z"
style="fill:#1a1a1a;fill-rule:evenodd"
id="path17" />
<path
d="m 595.3203,396.83 -85,106.7207 -56.6894,-53.3613 -56.6895,53.3613 -56.7011,-80 -56.6895,56 -56.75,-29.3398 -28.3496,26.6797 -28.3496,-80 -113.3809,80 -55.8398,-27.4004 c 0,0 -0.8809,18.2494 -0.8809,27.3594 0,235.7497 165.0019,373.5097 368.5117,373.5097 203.5098,0 368.5,-137.76 368.5,-373.5097 0,-8.42 -0.25,-16.8727 -0.75,-25.3594 l -55.9414,52.0605 z"
style="fill:#1a1a1a;fill-rule:evenodd"
id="path16" />
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -7,7 +7,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.2'
classpath 'com.android.tools.build:gradle:8.6.0'
// NOTE: Do not place your application dependencies here; they belong

View file

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip

@ -1 +1 @@
Subproject commit 0fe8340267b8824d98bf0a923a77662efbed171a
Subproject commit ae5ee4b4a0fb380c99e05f53b753cc86b212f1dd