From 18a14ead00c9f1ed20eba782781545d119fec1ba Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 26 May 2021 10:17:03 +0200 Subject: [PATCH 1/9] Settings: res: Set proper title for system version Signed-off-by: Aayush Gupta Change-Id: I3146e445e7b299086a566a66f8a13708699a91f7 --- res/values/cm_strings.xml | 5 +++++ res/xml/firmware_version.xml | 3 ++- res/xml/my_device_info.xml | 3 ++- .../LineageVersionDetailPreferenceController.java | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 9b3dc031340..4f092c35363 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -172,4 +172,9 @@ Fast charging Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery + + + + + /e/ OS version diff --git a/res/xml/firmware_version.xml b/res/xml/firmware_version.xml index 4eb25fd5786..8d78dcd0312 100644 --- a/res/xml/firmware_version.xml +++ b/res/xml/firmware_version.xml @@ -33,8 +33,9 @@ diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml index 6dcfc9f8d0d..27d6b79b153 100644 --- a/res/xml/my_device_info.xml +++ b/res/xml/my_device_info.xml @@ -134,8 +134,9 @@ diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java index 6d0ca9d33b8..146e573ca1c 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java @@ -131,6 +131,6 @@ public class LineageVersionDetailPreferenceController extends BasePreferenceCont @Override public void copy() { Sliceable.setCopyContent(mContext, getSummary(), - mContext.getText(org.lineageos.platform.internal.R.string.lineage_version)); + mContext.getText(R.string.e_version)); } } -- GitLab From 3dfeb6a42eebe3b4a41a743b7d0b0cfde4239a9c Mon Sep 17 00:00:00 2001 From: TheScarastic Date: Mon, 22 Aug 2022 13:43:49 +0000 Subject: [PATCH 2/9] Settings: Add /e/ legal --- res/values/cm_strings.xml | 3 + res/xml/about_legal.xml | 6 ++ .../legal/ELicensePreferenceController.java | 63 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 src/com/android/settings/deviceinfo/legal/ELicensePreferenceController.java diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 4f092c35363..3ccb7449536 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -177,4 +177,7 @@ /e/ OS version + + + /e/ legal diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml index a36ab66a601..a63a74a8881 100644 --- a/res/xml/about_legal.xml +++ b/res/xml/about_legal.xml @@ -41,6 +41,12 @@ android:title="@string/lineagelicense_title" settings:controller="com.android.settings.deviceinfo.legal.LineageLicensePreferenceController" /> + + + { + mContext.startActivity(getIntent()); + return true; + }); + } + } + + @Override + public int getAvailabilityStatus() { + if (getIntent().resolveActivity(mContext.getPackageManager()) != null) { + return AVAILABLE; + } else { + return UNSUPPORTED_ON_DEVICE; + } + } + + private Intent getIntent() { + return new Intent(Intent.ACTION_VIEW, + Uri.parse(SystemProperties.get(PROPERTY_E_LICENSE_URL))); + } +} -- GitLab From 651a02a8ebcc6c7fb95d74d68b27a03adfd1d163 Mon Sep 17 00:00:00 2001 From: Mohit Mali Date: Tue, 27 Oct 2020 16:33:04 +0000 Subject: [PATCH 3/9] Settings: Move updater to top of settings main page Signed-off-by: Aayush Gupta --- res/values/cm_strings.xml | 3 +++ res/xml/system_dashboard_fragment.xml | 11 ----------- res/xml/top_level_settings.xml | 12 ++++++++++++ .../system/SystemUpdatePreferenceController.java | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 3ccb7449536..947097e4c9a 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -180,4 +180,7 @@ /e/ legal + + + Updates, preferences, release notes diff --git a/res/xml/system_dashboard_fragment.xml b/res/xml/system_dashboard_fragment.xml index 9228ddd5f5a..fa0d100ed81 100644 --- a/res/xml/system_dashboard_fragment.xml +++ b/res/xml/system_dashboard_fragment.xml @@ -54,17 +54,6 @@ android:targetClass="@string/additional_system_update_menu"/> - - - - diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 947097e4c9a..5af00776b03 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -183,4 +183,10 @@ Updates, preferences, release notes + + + Connect to /e/ OS test channel + Access test releases of /e/ OS + You are about to connect to /e/ OS test channel + It will allow you to download and install test versions of /e/ OS. Those builds may be unstable, and should be used only for test purposes. Please accept only if you know what you are doing. diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index b47eb691df1..740299b7ab4 100644 --- a/res/xml/development_settings.xml +++ b/res/xml/development_settings.xml @@ -636,6 +636,11 @@ + + 0; + } + + private String retrieveStatus() { + Cursor cursor = mContext.getContentResolver().query(Uri.parse(UPDATE_URI), null, OTAProvider.id + "=?", new String[]{"1"}, OTAProvider.Status); + if (cursor.moveToFirst()) { + do { + status = cursor.getString(cursor.getColumnIndex(OTAProvider.Status)); + } while (cursor.moveToNext()); + } + return status; + } +} diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index bcc21561609..4110587d407 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2017 The Android Open Source Project + * Copyright (C) 2021 ECORP SAS * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -517,6 +518,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra controllers.add(new BluetoothA2dpHwOffloadPreferenceController(context, fragment)); controllers.add(new BluetoothMaxConnectedAudioDevicesPreferenceController(context)); controllers.add(new ShowTapsPreferenceController(context)); + controllers.add(new ChangeSourcePreferenceController(context)); controllers.add(new PointerLocationPreferenceController(context)); controllers.add(new ShowSurfaceUpdatesPreferenceController(context)); controllers.add(new ShowLayoutBoundsPreferenceController(context)); diff --git a/src/com/android/settings/development/OTAProvider.java b/src/com/android/settings/development/OTAProvider.java new file mode 100644 index 00000000000..58ec5a78294 --- /dev/null +++ b/src/com/android/settings/development/OTAProvider.java @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2021 ECORP SAS + * + * 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.settings.development; + +import android.content.ContentProvider; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.content.UriMatcher; +import android.database.Cursor; +import android.database.SQLException; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.database.sqlite.SQLiteQueryBuilder; +import android.net.Uri; + +import java.util.HashMap; + +public class OTAProvider extends ContentProvider { + + static final String PROVIDER_NAME = "custom.setting.Provider.OTA_SERVER"; + static final String URL = "content://" + PROVIDER_NAME + "/cte"; + static final Uri CONTENT_URI = Uri.parse(URL); + + static final String id = "id"; + static final String Status = "Status"; + static final int uriCode = 1; + static final UriMatcher uriMatcher; + static final String DATABASE_NAME = "mydb"; + static final String TABLE_NAME = "ota"; + static final int DATABASE_VERSION = 1; + static final String CREATE_DB_TABLE = " CREATE TABLE " + TABLE_NAME + + " (id INTEGER PRIMARY KEY AUTOINCREMENT, " + + " Status TEXT NOT NULL);"; + private static HashMap values; + + static { + uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); + uriMatcher.addURI(PROVIDER_NAME, "cte", uriCode); + uriMatcher.addURI(PROVIDER_NAME, "cte/*", uriCode); + } + + private SQLiteDatabase db; + + @Override + public boolean onCreate() { + Context context = getContext(); + DatabaseHelper dbHelper = new DatabaseHelper(context); + db = dbHelper.getWritableDatabase(); + return db != null; + } + + @Override + public Cursor query(Uri uri, String[] projection, String selection, + String[] selectionArgs, String sortOrder) { + SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); + qb.setTables(TABLE_NAME); + + switch (uriMatcher.match(uri)) { + case uriCode: + qb.setProjectionMap(values); + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + if (sortOrder == null || sortOrder == "") { + sortOrder = Status; + } + Cursor c = qb.query(db, projection, selection, selectionArgs, null, + null, sortOrder); + c.setNotificationUri(getContext().getContentResolver(), uri); + return c; + } + + + @Override + public String getType(Uri uri) { + switch (uriMatcher.match(uri)) { + case uriCode: + return "vnd.android.cursor.dir/cte"; + + default: + throw new IllegalArgumentException("Unsupported URI: " + uri); + } + } + + @Override + public Uri insert(Uri uri, ContentValues values) { + long rowID = db.insert(TABLE_NAME, "", values); + if (rowID > 0) { + Uri _uri = ContentUris.withAppendedId(CONTENT_URI, rowID); + getContext().getContentResolver().notifyChange(_uri, null); + return _uri; + } + throw new SQLException("Failed to add a record into " + uri); + } + + @Override + public int delete(Uri uri, String selection, String[] selectionArgs) { + int count = 0; + switch (uriMatcher.match(uri)) { + case uriCode: + count = db.delete(TABLE_NAME, selection, selectionArgs); + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + getContext().getContentResolver().notifyChange(uri, null); + return count; + } + + @Override + public int update(Uri uri, ContentValues values, String selection, + String[] selectionArgs) { + int count = 0; + switch (uriMatcher.match(uri)) { + case uriCode: + count = db.update(TABLE_NAME, values, selection, selectionArgs); + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + getContext().getContentResolver().notifyChange(uri, null); + return count; + } + + + private static class DatabaseHelper extends SQLiteOpenHelper { + DatabaseHelper(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL(CREATE_DB_TABLE); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); + onCreate(db); + } + } +} -- GitLab From 83c78a725c23114025e2de068c4576aa3331aae7 Mon Sep 17 00:00:00 2001 From: Abhishek Aggarwal Date: Wed, 23 Mar 2022 15:35:02 +0000 Subject: [PATCH 5/9] Settings: Integrate Privacy Central into settings Settings: Change packagename for advanced privacy * ALso explicitly specify component name --- res/drawable/ic_homepage_advanced_privacy.xml | 39 ++++++++++++++ res/values/cm_strings.xml | 4 ++ .../advanced_privacy_dashboard_settings.xml | 28 ++++++++++ res/xml/top_level_settings.xml | 8 +++ .../core/gateway/SettingsGateway.java | 4 +- .../dashboard/DashboardFragmentRegistry.java | 3 ++ .../AdvancedPrivacyDashboardFragment.java | 52 +++++++++++++++++++ 7 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 res/drawable/ic_homepage_advanced_privacy.xml create mode 100644 res/xml/advanced_privacy_dashboard_settings.xml create mode 100644 src/com/android/settings/privacy/AdvancedPrivacyDashboardFragment.java diff --git a/res/drawable/ic_homepage_advanced_privacy.xml b/res/drawable/ic_homepage_advanced_privacy.xml new file mode 100644 index 00000000000..c75e102402b --- /dev/null +++ b/res/drawable/ic_homepage_advanced_privacy.xml @@ -0,0 +1,39 @@ + + + + + + + diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 5af00776b03..14efd536a75 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -189,4 +189,8 @@ Access test releases of /e/ OS You are about to connect to /e/ OS test channel It will allow you to download and install test versions of /e/ OS. Those builds may be unstable, and should be used only for test purposes. Please accept only if you know what you are doing. + + + Advanced Privacy + Manage trackers, fake location, hide IP address diff --git a/res/xml/advanced_privacy_dashboard_settings.xml b/res/xml/advanced_privacy_dashboard_settings.xml new file mode 100644 index 00000000000..8433a4402a8 --- /dev/null +++ b/res/xml/advanced_privacy_dashboard_settings.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml index 276cb29e212..59262c8d533 100644 --- a/res/xml/top_level_settings.xml +++ b/res/xml/top_level_settings.xml @@ -147,6 +147,14 @@ android:summary="@string/privacy_dashboard_summary" settings:highlightableMenuKey="@string/menu_key_privacy"/> + + Date: Tue, 5 Apr 2022 12:06:30 +0000 Subject: [PATCH 6/9] Settings: mark eDrive as safe to be opened by accountManager --- .../settings/accounts/AccountTypePreferenceLoader.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java index 42bb34a0ee4..3266e51fcfe 100644 --- a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java +++ b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java @@ -195,6 +195,11 @@ public class AccountTypePreferenceLoader { } ActivityInfo resolvedActivityInfo = resolveInfo.activityInfo; ApplicationInfo resolvedAppInfo = resolvedActivityInfo.applicationInfo; + + if (resolvedActivityInfo.packageName.equals("foundation.e.drive")) { + return true; + } + try { // Allows to launch only authenticator owned activities. ApplicationInfo authenticatorAppInf = pm.getApplicationInfo(authDesc.packageName, 0); -- GitLab From 7051640e3e6d90b8909e44d42d043d2e9cfcd689 Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Wed, 6 Jul 2022 19:13:38 +0600 Subject: [PATCH 7/9] 5560-r-sync_account_with_mail_app issue: https://gitlab.e.foundation/e/backlog/-/issues/5560 call Mail app's accountSyncBroadcast receiver when account is removed from the accountManager. --- .../accounts/MailAccountSyncHelper.java | 61 +++++++++++++++++++ .../RemoveAccountPreferenceController.java | 6 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/com/android/settings/accounts/MailAccountSyncHelper.java diff --git a/src/com/android/settings/accounts/MailAccountSyncHelper.java b/src/com/android/settings/accounts/MailAccountSyncHelper.java new file mode 100644 index 00000000000..c43ab2b747e --- /dev/null +++ b/src/com/android/settings/accounts/MailAccountSyncHelper.java @@ -0,0 +1,61 @@ +/* + * Copyright ECORP SAS 2022 + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.android.settings.accounts; + +import android.annotation.TargetApi; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.os.Build; + +public class MailAccountSyncHelper { + + private static final String MAIL_PACKAGE = "foundation.e.mail"; + private static final String MAIL_RECEIVER_CLASS = "com.fsck.k9.account.AccountSyncReceiver"; + private static final String ACTION_PREFIX = "foundation.e.accountmanager.account."; + + public static void accountLoggedIn(Context applicationContext) { + if (applicationContext == null) { + return; + } + Intent intent = getIntent(); + intent.setAction(ACTION_PREFIX + "create"); + applicationContext.sendBroadcast(intent); + } + + public static void accountLoggedOut(Context applicationContext, String email) { + if (applicationContext == null || email == null || !email.contains("@")) { + return; + } + Intent intent = getIntent(); + intent.setAction(ACTION_PREFIX + "remove"); + intent.putExtra("account", email); + applicationContext.sendBroadcast(intent); + } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) + private static Intent getIntent() { + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + intent.setComponent(new ComponentName(MAIL_PACKAGE, MAIL_RECEIVER_CLASS)); + return intent; + } + + + private MailAccountSyncHelper() { + } +} diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java index 2ce22061907..d3183f62229 100644 --- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java +++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java @@ -159,7 +159,10 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl @Override public void onClick(DialogInterface dialog, int which) { Activity activity = getTargetFragment().getActivity(); - AccountManager.get(activity).removeAccountAsUser(mAccount, activity, + AccountManager accountManager = AccountManager.get(activity); + String email = accountManager.getUserData(mAccount, "email_address"); + + accountManager.removeAccountAsUser(mAccount, activity, future -> { final Activity targetActivity = getTargetFragment().getActivity(); if (targetActivity == null || targetActivity.isFinishing()) { @@ -181,6 +184,7 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl } Log.i(TAG, "failed: " + failed); if (!failed) { + MailAccountSyncHelper.accountLoggedOut(targetActivity.getApplicationContext(), email); targetActivity.finish(); } }, null, mUserHandle); -- GitLab From 18db1046b9ca4febecbe0b49659a87136113149c Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Thu, 7 Jul 2022 13:34:03 +0600 Subject: [PATCH 8/9] implement proper singleton for MailAccountSyncHelper --- .../accounts/MailAccountSyncHelper.java | 19 ++++++++++++++++--- .../RemoveAccountPreferenceController.java | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/accounts/MailAccountSyncHelper.java b/src/com/android/settings/accounts/MailAccountSyncHelper.java index c43ab2b747e..c48886752d3 100644 --- a/src/com/android/settings/accounts/MailAccountSyncHelper.java +++ b/src/com/android/settings/accounts/MailAccountSyncHelper.java @@ -28,7 +28,9 @@ public class MailAccountSyncHelper { private static final String MAIL_RECEIVER_CLASS = "com.fsck.k9.account.AccountSyncReceiver"; private static final String ACTION_PREFIX = "foundation.e.accountmanager.account."; - public static void accountLoggedIn(Context applicationContext) { + private static MailAccountSyncHelper instance = null; + + public void accountLoggedIn(Context applicationContext) { if (applicationContext == null) { return; } @@ -37,7 +39,7 @@ public class MailAccountSyncHelper { applicationContext.sendBroadcast(intent); } - public static void accountLoggedOut(Context applicationContext, String email) { + public void accountLoggedOut(Context applicationContext, String email) { if (applicationContext == null || email == null || !email.contains("@")) { return; } @@ -48,7 +50,7 @@ public class MailAccountSyncHelper { } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) - private static Intent getIntent() { + private Intent getIntent() { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); intent.setComponent(new ComponentName(MAIL_PACKAGE, MAIL_RECEIVER_CLASS)); @@ -56,6 +58,17 @@ public class MailAccountSyncHelper { } + public static MailAccountSyncHelper getInstance() { + if (instance == null) { + synchronized (MailAccountSyncHelper.class) { + if (instance == null) { + instance = new MailAccountSyncHelper(); + } + } + } + return instance; + } + private MailAccountSyncHelper() { } } diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java index d3183f62229..66e6c0719be 100644 --- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java +++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java @@ -184,7 +184,7 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl } Log.i(TAG, "failed: " + failed); if (!failed) { - MailAccountSyncHelper.accountLoggedOut(targetActivity.getApplicationContext(), email); + MailAccountSyncHelper.getInstance().accountLoggedOut(targetActivity.getApplicationContext(), email); targetActivity.finish(); } }, null, mUserHandle); -- GitLab From 4b1d2ef35bed0672c79f3a54369b357d63caba79 Mon Sep 17 00:00:00 2001 From: TheScarastic Date: Fri, 15 Jul 2022 05:02:01 +0000 Subject: [PATCH 9/9] Settings: Notify users all their accounts will be removed and not just google --- res/layout/main_clear.xml | 2 +- res/values/cm_strings.xml | 4 ++++ tests/robotests/res/layout/main_clear.xml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/res/layout/main_clear.xml b/res/layout/main_clear.xml index a2464e2c986..618fef293a6 100644 --- a/res/layout/main_clear.xml +++ b/res/layout/main_clear.xml @@ -42,7 +42,7 @@ android:id="@+id/sud_layout_description" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/main_clear_desc"/> + android:text="@string/main_clear_desc_e"/> Advanced Privacy Manage trackers, fake location, hide IP address + + + This will erase all data from your tablet\u2019s internal storage, including:\n\n
  • All your account
  • \n
  • System and app data and settings
  • \n
  • Downloaded apps
  • + This will erase all data from your phone\u2019s internal storage, including:\n\n
  • All your account
  • \n
  • System and app data and settings
  • \n
  • Downloaded apps
  • diff --git a/tests/robotests/res/layout/main_clear.xml b/tests/robotests/res/layout/main_clear.xml index b9a126d423f..81fa94353f1 100644 --- a/tests/robotests/res/layout/main_clear.xml +++ b/tests/robotests/res/layout/main_clear.xml @@ -42,7 +42,7 @@ android:id="@+id/sud_layout_description" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/main_clear_desc"/> + android:text="@string/main_clear_desc_e"/>