diff --git a/res/values-ar/cm_strings.xml b/res/values-ar/cm_strings.xml
index 7f30b4625018364d6f39fb305a3ec65a1e89f668..db7565ae43fb030da9a273de607b6177a7549fe4 100644
--- a/res/values-ar/cm_strings.xml
+++ b/res/values-ar/cm_strings.xml
@@ -32,10 +32,14 @@
لا داعي، فخيارات المطور مفعّلة.
+ المنصة
+ إجمالي الذاكرةأدوات التطوير
+ إعادة تشغيل متقدمة
+ عند إلغاء القفل، ستتضمن خيارات قائمة إعادة التشغيل الذهاب الى وضع الاسترداد او وضع محمل الاقلاعصلاحيات الجذرالسماح بالوصول الجذري؟
@@ -45,31 +49,45 @@
لـADB فقطالتطبيقات وADB
+ إدارة صلاحيات الجذر
+ عرض قواعد الجذر والتحكم فيها
+ اضغط للنوم
+ الضغط مرتين فوق شريط الحالة لإطفاء الشاشة
+ الإيماءات اللمسية
+ عمل إيماءات لمسية متعددة لأعمال سريعةمنع الاستيقاظ العشوائي
+ التحقق من مستشعر القرب قبل إيقاظ الشاشةإظهار إدخال كلمة المرور مباشرة
+ تخطي التمرير لفتح قفل الشاشة والبدء فورا في إدخال كلمة المرورإظهار عرض النمط مباشرة
+ تخطي التمرير لفتح قفل الشاشة والبدء فورا في إدخال النقشإظهار إدخال رقم PIN مباشرة
+ تخطي التمرير لفتح قفل الشاشة والبدء فورا في إدخال رمز pinتخطيط الترميزتخطيط رقم PIN المرمز عند إلغاء تأمين الجهازعرض صورة الغلاف للموسيقى
+ عرض الغلاف الفني للوسائط
+ اختر حجم النمطإظهار خطأ النمطإظهار نقاط النمطاهتزاز
+ الاهتزاز عند الفتحتصحيح أخطاء Android
+ تمكين واجهة جسر تصحيح أخطاء أندرويد (ADB)إشعار تنقيح الأخطاءعرض إشعار عند تمكين تنقيح الأخطاء عبر USB أو الشبكات
@@ -81,7 +99,12 @@
زر إلغاء التطبيق مجدداًقم بإنهاء التطبيق الأمامي بالضغط الطويل على زر العودة
+ حدد موقع حساس بصمة الأصبع %1$s من هاتفك.
+ في الخلف
+ في الأمام
+ على الجانب الأيسر
+ على الجانب الأيمناسم مضيف الجهاز
@@ -89,6 +112,7 @@
حجم الصوت البدئيّزمن التدرج
+ ربط حجم صوت النغمة وصوت الإشعاراتالتطبيقات بدأت في التمهيد
@@ -114,6 +138,7 @@
المراسلةوسائطالجهاز
+ يعمل في الخلفيةإعادة تحميلالوصول إلى الجذرأخرى
@@ -161,6 +186,7 @@
البقاء بحالة انتباهمراقبة الموقعرصد موقع عالي الطاقة
+ الحصول على إحصائيات استخدام التطبيقكتم/إلغاء كتم الميكروفونعرض الرسائل الإشعاريةوسائط المشروع
@@ -180,6 +206,13 @@
الكتابة على الذاكرة الخارجيةتشغيل الشاشةالحصول على الحسابات
+ يعمل في الخلفية
+ الوصول إلى مستوى الصوت
+ قراءة أرقام الهاتف
+ طلب حزم التثبيت
+ استخدام صورة في صورة
+ بدء التطبيق الفوري في المقدمة
+ الرد على المكالمات الهاتفيةتبديل Wi-Fiتبديل بلوتوثبدء تشغيل في التمهيد
@@ -250,6 +283,13 @@
الكتابة على الذاكرة الخارجيةتشغيل الشاشةالحصول على الحسابات
+ يعمل في الخلفية
+ إمكانية الوصول لمستوى الصوت
+ قراءة أرقام الهاتف
+ طلب تثبيت الحزم
+ استخدام صورة في صورة
+ بدء التطبيق الفوري في المقدمة
+ الرد على المكالمات الهاتفيةتبديل Wi-Fiتبديل بلوتوثبدء تشغيل في التمهيد
@@ -265,6 +305,7 @@
المسموح بها %sمرفوض%sمسموح%1$s, مرفوض%2$s
+ ليست هناك أذونات متاحة للحظرإظهار تطبيقات المستخدمإظهار تطبيقات مضمنة
@@ -272,6 +313,7 @@
تأكيد إعادة تعيين العداداتهل أنت متأكد من رغبتك في إعادة تعيين العدادات؟موافق
+ الأمان والخصوصيةقانون LineageOS
@@ -280,6 +322,8 @@
الإيقاظ عند التوصيلتشغيل الشاشة عند الاتصال أو قطع الاتصال بمصدر الطاقة
+ الإشعارات العائمة
+ عرض الإشعارات ذات الأولوية في إطار عائم صغيرحساسية ذات لمس عاليزيادة حساسية شاشة اللمس حتى يمكن استخدامها أثناء ارتداء القفازات
@@ -287,4 +331,8 @@
المرور فوق الشاشة اللمسيةيسمح لك بالمرور فوق الشاشة مثل الماوس في مستعرضات الويب، أو سطح المكتب عن بُعد، إلخ
+ بيانات شبكة الجوّال
+ تمكين استخدام البيانات
+ بيانات WiFi
+ تمكين استخدام بيانات WiFi
diff --git a/res/values-ast-rES/cm_strings.xml b/res/values-ast-rES/cm_strings.xml
index aa0d36f81fce07ca5fac2cbc0411ff6077c0c537..08f5dfcc38266c817db48d815412642874d60378 100644
--- a/res/values-ast-rES/cm_strings.xml
+++ b/res/values-ast-rES/cm_strings.xml
@@ -28,11 +28,14 @@
Nun fai falta, yá tán activaes los axustes de desendolcu.
+ Plataforma
+ RAM totalFerramientes de desendolcuReaniciu avanzáu
+ Destorgáu, inclúi opciones nel menú d\'apagáu pa reiniciar nel mou recuperación o cargador d\'arranqueAccesu root¿Permitir l\'accesu root?
@@ -45,43 +48,100 @@
Xestionar accesos rootMira y controla les regles root
+ Calca pa suspender
+ Calca dos vegaes na barra d\'estáu o pantalla de bloquéu p\'apagar la pantalla
+ Xestos de pantalla táutil
+ Fai dellos xestos táutiles p\'aiciones rápidesEvitar esconsueñu accidental
+ Comprueba\'l sensor de proximidá enantes de prender la pantalla
+ Amosar direutamente la contraseña
+ Omitir l\'esbarie pa destorgar la pantalla y entamar darréu la introducción de la contraseña
+ Amosar direutamente\'l patrón
+ Omitir l\'esbarie pa destorgar la pantalla y entamar darréu la introducción del patrón
+ Amosar direutamente la entrada PIN
+ Omitir l\'esbarie pa destorgar la pantalla y entamar darréu la introducción del PIN
+ Disposición al debalu
+ Cambiar la disposición de los númberos del PIN pa desbloquiar el preséu
+ Amosar visualizador de música
+ Amosar la portada del álbumEscueyi un tamañu de patrón
+ Amosar fallu de patrón
+ Amosar puntos del patrón
+ Vibración
+ Vibrar al desbloquiar
+ Depuración AndroidHabilita la interfaz de depuración ADBAvisu de depuración
+ Amosar un avisu cuando tea activada la depuración per USB o rede
+ ADB sobre rede
+ Activar la depuración TCP/IP sobre les interfaces de rede (Wi\u2011Fi, redes USB). Esta configuración restablezse al reaniciar el preséu
+ AVISU: Cuando ta habilitáu ADB sobre rede, el teléfono ta abiertu pa intrusiones en toles redes coneutaes.\n\nUsa esta función namái coneutáu a redes de confianza.\n\n¿Daveres quies activar esta función?
+ Botón Volver
+ Matar l\'aplicación actual al caltener primíu\'l botón Volver
+ Alluga\'l sensor de buelgues na parte %1$s del to teléfonu.
+ d\'atrás
+ frontal
+ llau esquierdu
+ llau drechu
+ Nome del preséu
+ Volume de timbre ascendenteVolume inicial
+ Duración d\'incrementu
+ Venceyar tonu de llamada & y volume de les notificaciones
+ Apps aniciaes nel arranque
+ %1$s ta %2$s
+ deshabilitada
+ ausente o defeutuosa
+ Desactivaráse la tarxeta SIM. ¿Quies siguir?
+ Atención
+ Esta SIM va desactivase y la SIM %1$s va usase pa servicios de datos. ¿De xuru que quies continuar?
+ Nun pue facese la operación entrín el mou avión tea activáu.
+ Nun pue facese la operación entrín teas llamando.
+ Nun puen deshabilitase toles tarxetes SIM
+ Activando\u2026
+ Desactivando\u2026
+ Activóse la SIM.
+ Falló l\'activación.
+ Desactivóse la SIM.
+ Falló la desactivación.AllugamientuPersonalMensaxería
+ MultimediaPreséu
+ Executar de fonduArranqueAccesu root
+ Otros
+ allugamientu pocu precisu
+ allugamientu precisuGPS
+ vibraciónlleer contautosmodificar contautoslleer el rexistru de llamaes
@@ -89,15 +149,21 @@
lleer calendariumodificar calendariuescanéu Wi-Fi
+ notific/not. emerxent
+ guetar redes
+ Llamar per teléfonulleer SMSescribir SMSrecibir SMSrecibir SMS d\'emerxenciarecibir MMS
+ recibir WAP pushunviar SMSlleer ICC SMSescribir ICC SMSmodificar axustes
+ amosar arriba
+ acceder a les notificacionescámaragrabar audiureproducir audiu
@@ -108,27 +174,72 @@
volume principalvolume de vozvolume del timbre
+ volume de multimediavolume d\'alarmavolume d\'avisuvolume Bluetooth
+ caltener encesumonitorizar allugamientu
+ monitorizar llocalización n\'alta precisiónconsiguir estadístiques d\'usu d\'aplicacionesde/silenciar micrófonu
+ amosar notificaciones emerxentes
+ proyeutar conteníu multimediaactivar VPN
+ escribir fondu de pantalla
+ encontu a la estructura
+ encontu a captura pantalla
+ lleer estáu del teléfonu
+ amestar buzón de voz
+ usar SIP
+ facer llamada
+ usar buelga
+ usar sensores corporales
+ lleer tresmisiones celularesallugamientu falsu
+ lleer almacenamientu esternu
+ escribir al almacenamientu esternu
+ prender pantalla
+ consiguir cuentesexecutase de fondu
+ volume d\'accesibilidá d\'audiu
+ lleer númberos telefónicos
+ solicitar instalación de paquetes
+ usar Picture-in-Picture
+ aniciar aplicación nel intre en primer planu
+ contestar llamaes de teléfonu
+ alternar Wi-Fi
+ alternar bluetooth
+ aniciar nel arranquealternar NFC
+ alternar datos móviles
+ accesu alministrativu
+ Llocalización aproximada
+ Llocalización finaGPS
+ Vibrar
+ Lleer contautos
+ Modificar contautos
+ Lleer rexistru de llamaes
+ Modificar rexistru de llamaes
+ Lleer calendariu
+ Modificar calendariu
+ Escanear Wi-Fi
+ Notificación/Mensaxe
+ Escanéu de rede móvil
+ LlamarLleer SMSEscribir SMSRecibir SMSRecibir mensaxes SMS d\'emerxenciaRecibir MMS
+ Recibir mensaxes WAPUnviar SMSLleer ICC SMSEscribir ICC SMSModificar axustes
+ Amosar encimaAccesu a avisosCámaraGrabar audiu
@@ -144,15 +255,36 @@
Volume d\'alarmaVolume d\'avisuVolume Bluetooth
+ Caltener encesu
+ Monitorear llocalización
+ Monitorear llocalización fina
+ Obtener estadístiques d\'usu
+ Silenciar/nun silenciar micrófonu
+ Amosar notificaciones emerxentes
+ Proyeutu MediaActivar VPN
+ Escribir fondu de pantalla
+ Encontu d\'estructura
+ encontu a captura pantalla
+ lleer estáu del teléfonu
+ amestar buzón de vozUsar SIP
+ Facer llamadaUsar buelgaUsar sensores corporales
+ Lleer tresmisiones celularesAllugamientu falsuLleer almacenamientu esternuEscribir nel almacenamientu esternuPrender pantallaConsiguir cuentes
+ Executar de fondu
+ Volume d\'accesibilidá d\'audiu
+ Lleer númberos telefónicos
+ Riquir la instalación de paquetes
+ Usar Picture in Picture
+ Aniciar aplicación nel intre en primer planu
+ Contestar llamaes de teléfonuAlternar Wi-FiAlternar bluetoothAniciar nel arranque
@@ -160,13 +292,25 @@
Alternar datos móvilesAccesu root
+ Permitíu
+ inoráuEntrugar siempre
+ %1$s (used %2$s)
+ Permitíu %s
+ Refugáu %s
+ Permitíu %1$s, refugáu %2$s
+ Nun hai permisos disponibles pa torgarAmosar aplicaciones d\'usuariu
+ Amuesa les app del sistema
+ Restablecer contadores
+ Confirma\'l reaniciu de los contadores¿De xuru que quies reafitar los contadores?Aceutar
+ Seguranza y privacidá
+ Llicencia LineageOSSonios d\'axuste de volume
@@ -176,6 +320,14 @@
Avisos emerxentesAmuesa los avisos prioritarios nuna ventana pequeña flotante
+ Sensibilidá alta al tactu
+ Incrementar la sensibilidá del panel táctil pa que pueda usase llevando guantes
+ Pantalla táctil eslizante
+ Permite eslizase pela pantalla como un mur en navegadores, escritorios remotos, etc.
+ Datos móviles
+ Activar l\'usu de los datos móviles
+ Datos Wi\u2011Fi
+ Activar l\'usu de los datos Wi\u2011Fi
diff --git a/res/values-cy/arrays.xml b/res/values-cy/arrays.xml
index 4fd275e87255c380748f61f8fd0a3b3fc0df203c..0229e5ec54947ee0addc393fb311a7703c76feda 100644
--- a/res/values-cy/arrays.xml
+++ b/res/values-cy/arrays.xml
@@ -78,7 +78,7 @@
Bach
- Default
+ ArferolMawrMwyaf
@@ -109,7 +109,7 @@
Wedi\'i rhwystro
- Temporarily avoiding poor connection
+ Yn osgoi cysylltiad gwael am y tro
@@ -152,6 +152,14 @@
+
+
+ Gwthio botwm
+
+ PIN gan ddyfais cyfaill
+
+ PIN gan y ddyfais hon
+
@@ -187,8 +195,8 @@
- Usage time
- Last time used
+ Amser defnydd
+ Defnyddiwyd ddiwethafEnw\'r ap
@@ -236,10 +244,28 @@
DimPAPCHAP
- PAP or CHAP
+ PAP neu CHAP
+
+ Anhysbys
+ LTE
+ HSPAP
+ HSPA
+ HSUPA
+ HSDPA
+ UMTS
+ EDGE
+ GPRS
+ eHRPD
+ EVDO_B
+ EVDO_A
+ EVDO_0
+ 1xRTT
+ IS95B
+ IS95A
+ Dim
@@ -251,13 +277,18 @@
GID
+
+ Internal device storage
+ Removable SD card
+ Gadael i\'r system benderfynu
+ Lleoliad
- Personal
- Messaging
- Media
+ Personol
+ Negesu
+ CyfryngauDyfais
@@ -265,65 +296,65 @@
coarse locationfine locationGPS
- vibrate
- read contacts
- modify contacts
+ dirgrynu
+ darllen cysylltiadau
+ addasu cysylltiadaudarllen y log galwadauaddasu\'r log galwadau
- read calendar
- modify calendar
- wi-fi scan
+ darllen y calendr
+ addasu\'r calendr
+ sganio wi-fihysbysiadcell scangalw ffôn
- read SMS
- write SMS
- receive SMS
- receive emergency SMS
- receive MMS
+ darllen SMS
+ ysgrifennu SMS
+ derbyn SMS
+ derbyn SMS brys
+ derbyn MMSreceive WAP pushanfon SMS
- read ICC SMS
+ darllen SMS ICCwrite ICC SMSaddasu gosodiadaudraw on topaccess notificationscamera
- record audio
- play audio
- read clipboard
- modify clipboard
- media buttons
- audio focus
- master volume
- voice volume
- ring volume
- media volume
+ recordio sain
+ chwarae sain
+ darllen y clipfwrdd
+ addasu\'r clipfwrdd
+ botymau cyfryngau
+ ffocws sain
+ prif uchder sain
+ uchder sain llais
+ uchder sain caniad ffôn
+ uchder sain cyfryngauuchder sain larymauuchder sain hysbysiadau
- bluetooth volume
- keep awake
+ Uchder sain Bluetooth
+ cadw\'n effromonitor locationmonitor high power location
- get usage stats
- mute/unmute microphone
+ cael ystadegau defnydd
+ distewi/dad-ddistewi\'r meicroffonshow toastproject mediaactivate VPN
- write wallpaper
+ ysgrifennu papur walassist structureassist screenshotread phone state
- add voicemail
+ ychwanegu lleisbostuse sipprocess outgoing call
- fingerprint
- body sensors
+ ôl bys
+ synwyryddion corffread cell broadcastsmock locationread storagewrite storage
- turn on screen
+ troi sgrin ymlaenget accountsrun in backgrounduchder sain hygyrchedd
@@ -333,72 +364,91 @@
LleoliadLleoliadLleoliad
- Vibrate
- Read contacts
- Modify contacts
+ Dirgrynu
+ Darllen cysylltiadau
+ Addasu cysylltiadauDarllen y log galwadauAddasu\'r log galwadau
- Read calendar
- Modify calendar
+ Darllen y calendr
+ Addasu\'r calendrLleoliadPost notificationLleoliadGalw ffôn
- Read SMS/MMS
- Write SMS/MMS
- Receive SMS/MMS
- Receive SMS/MMS
- Receive SMS/MMS
- Receive SMS/MMS
+ Darllen SMS/MMS
+ Ysgrifennu SMS/MMS
+ Derbyn SMS/MMS
+ Derbyn SMS/MMS
+ Derbyn SMS/MMS
+ Derbyn SMS/MMSAnfon SMS/MMS
- Read SMS/MMS
- Write SMS/MMS
+ Darllen SMS/MMS
+ Ysgrifennu SMS/MMSAddasu gosodiadauDraw on topAccess notificationsCamera
- Record audio
- Play audio
- Read clipboard
- Modify clipboard
- Media buttons
- Audio focus
- Master volume
- Voice volume
- Ring volume
- Media volume
+ Recordio sain
+ Chwarae sain
+ Darllen y clipfwrdd
+ Addasu\'r clipfwrdd
+ Botymau cyfryngau
+ Ffocws sain
+ Prif uchder sain
+ Uchder sain llais
+ Uchder sain caniad ffôn
+ Uchder sain cyfryngauUchder sain larymauUchder sain hysbysiadauBluetooth volume
- Keep awake
+ Cadw\'n effroLleoliadLleoliad
- Get usage stats
- Mute/unmute microphone
+ Cael ystadegau defnydd
+ Distewi/dad-ddistewi\'r meicroffonShow toastProject mediaActivate VPN
- Write wallpaper
+ Ysgrifennu papur walAssist structureAssist screenshotRead phone state
- Add voicemail
+ Ychwanegu lleisbostUse sipProcess outgoing call
- Fingerprint
- Body sensors
+ Ôl bys
+ Synwyryddion corffRead cell broadcastsMock locationRead storageWrite storage
- Turn on screen
+ Troi sgrin ymlaenGet accountsRun in backgroundUchder sain hygyrchedd
+
+
+ Byr
+
+ Canolig
+
+ Hir
+
+
+ Rhagosodiad
+ Sans-serif
+ Sans-serif condensed
+ Sans-serif monospace
+ Serif
+ Serif monospace
+ Achlysurol
+ Rhedol
+ Priflythrennau bychain
+
@@ -411,12 +461,12 @@
- Default
+ RhagosodiadDim
- Outline
+ AmlinellDrop shadow
- Raised
- Depressed
+ Codwyd
+ Gostyngwyd
@@ -437,56 +487,90 @@
+
+ PPTP VPN
+ L2TP/IPSec VPN with pre-shared keys
+ L2TP/IPSec VPN gyda thystysgrifau
+ IPSec VPN with pre-shared keys and Xauth authentication
+ IPSec VPN with certificates and Xauth authentication
+ IPSec VPN with certificates and hybrid authentication
+ Heb gysylltu
- Initializing\u2026
+ Yn ymgychwyn\u2026
- Connecting\u2026
+ Yn cysylltu\u2026
- Connected
+ Wedi cysyllltuTimeout
- Unsuccessful
+ Aflwyddiannus
- Ask
+ GofynCaniatáu BythCaniatáu Bob Tro
+
+
+ Arferol
+
+ Cymedrol
+
+ Isel
+
+ Critigol
+
+ \?
+
+
+ Arferol
+ Cymedrol
+ Isel
+ Critigol
+ PersistentTop activity
- Important (foreground)
- Important (background)
+ Pwysig (blaendir)
+ Pwysig (cefndir)Copi wrth gefnHeavy weight
- Service (running)
- Service (restarting)
+ Gwasanaeth (yn rhedeg)
+ Gwasanaeth (ailddechrau)ReceiverCartref
- Last activity
+ Gweithred ddiwethafCached (activity)Cached (activity client)Cached (empty)
+
+ Glaswyrdd
+ Glas
+ Indigo
+ Porffor
+ Pinc
+ Coch
+
diff --git a/res/values-cy/cm_strings.xml b/res/values-cy/cm_strings.xml
index de402bb4eeea46221821a370a98aa0ae07bf1c52..62efc30ae4c24344d0f4ccbb167924a187dd3b25 100644
--- a/res/values-cy/cm_strings.xml
+++ b/res/values-cy/cm_strings.xml
@@ -22,20 +22,31 @@
+ PlatfformCyfanswm RAMAilgychwyn arbennig
+ Mynediad craidd
+ Caniatáu mynediad craidd?
+ Mae caniatáu i apiau gael mynediad craidd yn hynod beryglus a gall peryglu diogelwch dy ddyfais!
+ Dim
+ Apiau yn unig
+ ADB yn unig
+ Apiau ac ADBTara i gysgu
+ Neidio\'r sgrin llithro i ddatgloi a dechrau yn hytrach gyda\'r sgrin cyfrinair yn syth
+ Neidio\'r sgrin llithro i ddatgloi a dechrau yn hytrach gyda\'r sgrin patrwm yn syth
+ Neidio\'r sgrin llithro i ddatgloi a dechrau yn hytrach gyda\'r sgrin PIN yn syth
@@ -43,57 +54,147 @@
+ Dirgrynu
+ Dadfygio Android
+ ADB dros rwydwaith
+ Galluogi dadfygio TCP/IP dros ryngwynebau rhwydwaith (Wi\u2011Fi, rhwydweithiau USB). Mae\'r gosodiad yn cael ei ail-osod wrth ail-gychwyn y ddyfais.
+ RHYBUDD: Tra bod ADB dros rwydwaith wedi\'i alluogi, mae dy ffôn ar gael ac yn agor i ymyrraeth ar bob rhwydwaith mae wedi cysylltu â nhw!\n\nDefnyddia\'r nodwedd hon dim ond pan wyt wedi cysylltu â rhwydweithiau rwyt yn ymddiried ynddynt.\n\nWyt ti wir eisiau parhau i alluogi\'r nodwedd hon?nôl
+ blaen
+ ochr chwith
+ ochr dde
+ Uchder sain yn cynyddu
+ Sain dechreuol
+ SylwCaiff y SIM hwn ei analluogi a defnyddir SIM %1$s ar gyfer gwasanaethau data. Wyt ti am barhau?Nid yw\'n bosib cyflawni\'r dasg tra ym modd awyren.Nid yw\'n bosib cyflawni\'r dasg tra bod galwad ar y gweill.
+ Yn rhoi ar waith\u2026
+ Methwyd â\'i roi ar waith.
+ Lleoliad
+ Personol
+ Negesu
+ Cyfryngau
+ DyfaisRhedeg yn y cefndir
+ Mynediad craidd
+ Arall
+ lleoliad union
+ dirgrynu
+ darllen cysylltiadau
+ darllen y cofnod galwadau
+ darllen y calendrSganio wi-figalw ffôn
+ darllen SMSysgrifennu SMS
+ derbyn SMS
+ derbyn MMS
+ anfon SMS
+ darllen SMS ICCcamera
+ recordio sain
+ botymau cyfryngau
+ ffocws sain
+ prif uchder sainuchder sain llais
+ uchder sain caniad ffôn
+ uchder sain cyfryngau
+ uchder sain larwmdistewi/dad-ddistewi\'r meicroffon
+ taflunio cyfryngau
+ rhoi VPN ar waithysgrifennu papur wal
+ ychwanegu lleisbost
+ defnyddio SIP
+ gwneud galwaddefnyddio ôl bysdefnyddio synwyryddion corff
+ ffugio lleoliad
+ troi\'r sgrin ymlaen
+ cael cyfrifonrhedeg yn y cefndir
+ uchder sain hygyrchedd
+ darllen rhifau ffôn
+ gofyn i weld pecynnau gosoddefnyddio llun o fewn llun
+ ateb galwadau ffôntoglo Wi-Fitoglo Bluetoothtoglo data symudol
+ mynediad craidd
+ Lleoliad union
+ Dirgrynu
+ Darllen cysylltiadau
+ Darllen y log galwadau
+ Darllen y calendrSganio wi-fiGalw ffôn
+ Darllen SMSYsgrifennu SMS
+ Derbyn SMS
+ Derbyn MMS
+ Anfon SMS
+ Darllen SMS ICCCamera
+ Recordio sain
+ Darllen y clipfwrdd
+ Botymau cyfryngau
+ Ffocws sain
+ Prif uchder sainUchder sain llais
+ Uchder sain caniad ffôn
+ Uchder sain cyfryngau
+ Uchder sain larwm
+ Taflunio cyfryngau
+ Rhoi VPN ar waithYsgrifennu papur wal
+ Ychwanegu lleisbost
+ Defnyddio SIP
+ Gwneud galwadDefnyddio ôl bysDefnyddio synwyryddion corff
+ Ffugio lleoliad
+ Troi\'r sgrin ymlaen
+ Cael cyfrifonRhedeg yn y cefndir
+ Darllen rhifau ffôn
+ Gofyn i weld pecynnau gosodDefnyddio llun o fewn llun
+ Ateb galwadau ffônToglo Wi-FiToglo BluetoothToglo data symudol
+ Mynediad craidd
+ Caniateir
+ Anwybyddwyd
+ Gofyn pob tro
+ Caniateir %s
+ Caniateir %1$s, gwrthodwyd %2$s
+ Dangos apiau defnyddiwr
+ Ailosod rhifyddion caniatáu/gwrthod
+ Wyt ti\'n bendant eisiau ailosod rhifyddion?Iawn
+ Diogelwch a phreifatrwydd
+ Cyfreithiol LineageOSDeffro wrth gysylltu â phŵer
@@ -101,5 +202,8 @@
+ Data symudol
+ Galluogi defnydd data symudolData Wi\u2011Fi
+ Galluogi defnydd data Wi\u2011Fi
diff --git a/res/values-cy/strings.xml b/res/values-cy/strings.xml
index c34d85c6ddfb164c4c6667ba4868705c0fb42145..4f4e2d0dc4e4d8e8ace6a418e3396723ac10abe8 100644
--- a/res/values-cy/strings.xml
+++ b/res/values-cy/strings.xml
@@ -17,23 +17,38 @@
+ "Na"
+ CreuCaniatáu
+ GwrthodCau
+ Anhysybys
+
+ Rwyt nawr %1$d camau i ffwrdd o gael mynediad datblygwr.
+ Rwyt nawr %1$d cam i ffwrdd o gael mynediad datblygwr.
+ Rwyt nawr %1$d gam i ffwrdd o gael mynediad datblygwr.
+ Rwyt nawr %1$d cam i ffwrdd o gael mynediad datblygwr.
+ Rwyt nawr %1$d cham i ffwrdd o gael mynediad datblygwr.
+ Rwyt nawr %1$d cam i ffwrdd o gael mynediad datblygwr.
+
+ Rwyt bellach â mynediad fel datblygwr!
+ Dim angen; rwyt eisoes yn ddatblygwr.Di-wifr a rhwydweithiau
+ CysylltiadauDyfais
@@ -41,6 +56,7 @@
Mynediad
+ SystemGalluogi Cysylltiad Data
@@ -66,7 +82,9 @@
Heb Gofrestru
+ Ar gael
+ Dim ar gaelCofrestriad IMS: %1$s\u000ALlais dros LTE: %2$s\u000ALlais dros WiFi: %3$s\u000AGalwadau fideo: %4$s\u000ARhyngwyneb UT:%5$s
@@ -78,23 +96,35 @@
Radio wedi\'i Diffodd
+ CrwydroDim yn Crwydro
+ SegurGalwad ar y Gweill
+ Wedi datgysylltu
+ Yn cysylltu
+ Wedi cysyllltu
+ Anhysybys
+ pkts
+ beitiau
+ dBm
+ asu
+ LAC
+ CID
@@ -113,30 +143,28 @@
Gwneud yn fwyTestun enghreifftiol
- Pedeir Keinc y Mabinogi
+ Llyfr Gwyn Rhydderch
- Pwyll a Riannon
- Sewyll ac arhos a oruc y uorwyn, a gwaret y rann a dylyei uot am y hwyneb o wisc y phenn, ac attal y golwc arnaw, a dechrau ymdidan ac ef.\n
- ‘Arglwydes,’ heb ef, ‘pan doy di, a pha gerdet yssyd arnat ti?’\n
- ‘Kerdet wrth uy negesseu,’ heb hi, ‘a da yw gennyf dy welet ti.’\n
- ‘Crassaw wrthyt y gennyf i,’ heb ef.\n
- Ac yna medylyaw a wnaeth bot yn diuwyn ganthaw pryt a welsei o uorwyn eiroet, a gwreic, y wrth y ffryt hi.\n
- ‘Arglwydes,’ heb ef, ‘a dywedy di ymi dim o’th negesseu?’\n
- ‘Dywedaf, y rof a Duw,’ heb hi, ‘Pennaf neges uu ymi, keissaw dy welet ti.’\n
- ‘Llyna,’ heb y Pwyll, ‘y neges oreu gennyf i dy dyuot ti idi. Ac y dywedy di ymi pwy wyt?’\n
- ‘Dywedaf, arglwyd,’ heb hi. ‘Riannon, uerch Heueyd Hen, wyf i, a’m rodi y wyr o’m hanwod yd ydys. Ac ny mynneis innheu un gwr, a hynny o’th garyat ti. Ac nys mynnaf etwa, onyt ti a’m gwrthyt. Ac e wybot dy attep di am hynny e deuthum i.’\n
- ‘Rof i a Duw,’ heb ynteu Pwyll, ‘llyna uy attep i iti, pei caffwn dewis ar holl wraged a morynnyon y byt, y mae ti a dewisswn.’\n
- ‘Ie,’ heb hitheu, ‘os hynny a uynny, kyn uy rodi y wr arall, gwna oed a mi.’\n
- ‘Goreu yw gennyf i,’ heb y Pwyll, ‘bo kyntaf; ac yn y lle y mynnych ti, gwna yr oet.’\n
- ‘Gwnaf, arglwyd,’ heb hi. ‘Blwydyn y heno, yn llys Heueyd, mi a baraf bot gwled darparedic yn barawt erbyn dy dyuot.’\n
- ‘Yn llawen,’ heb ynteu, ‘a mi a uydaf yn yr oet hwnnw.’\n
- ‘Arlwyd,’ heb hi, ‘tric yn iach, a choffa gywiraw dy edewit, ac e ymdeith yd af i.’\n
- A guahanu a wnaethont, a chyrchu a wnaeth ef parth a’u teulu a’u niuer. Pa ymouyn bynnac a uei ganthunt wy y wrth y uorwyn, y chwedleu ereill y trossei ynteu.
+ Ail Gainc y Mabinogi
+ ...\n
+ Bendigeiduran a doeth ẏ r tir a llẏnghes ẏ gẏt ac ef parth a glann ẏr auon.\n
+ \"arglỽẏd\" heb ẏ ỽẏrda \"ti a ỽdost kẏnnedẏf ẏr auon. nẏ eill neb uẏnet drỽẏdi. nẏt oes bont arnei hitheu. Mae dẏ gẏnghor am bont\" heb ỽẏ.\n
+ \"Nit oes\" heb ẏnteu \"namẏn a uo penn bit pont. Mi a uẏdaf pont\" heb ef.\n
+ac ẏna gẏntaf ẏ dẏỽetpỽẏt ẏ geir hỽnnỽ ac ẏ diharebir etỽa ohonaỽ.\n
+ ac ẏna guedẏ gorỽed ohonaỽ ef ar traỽs ẏr auon ẏ bẏrỽẏt clỽẏdeu arnaỽ ef. ac ẏd aeth ẏ luoed ef ar ẏ draỽs ef drỽod. ar hẏnnẏ gẏt ac ẏ kẏuodes ef. llẏma gennadeu matholỽch ẏn dẏuot attaỽ ef ac ẏn kẏuarch guell idaỽ. ac ẏn ẏ annerch ẏ gan uatholỽch ẏ gẏua thrachỽr ac ẏn menegi o e uod ef na haedei arnaỽ ef namẏn da.\n
+ \"ac ẏ mae matholỽch ẏn rodi brenhinaeth iỽerdon ẏ ỽern uab matholỽch dẏ nei ditheu uab dẏ chỽaer ac ẏn ẏ ẏstẏnnu ẏ th ỽẏd di ẏn lle ẏ cam a r codẏant a ỽnaethpỽẏt ẏ uranỽen. ac ẏn ẏ lle ẏ mẏnnẏch ditheu aẏ ẏma aẏ ẏn ẏnẏs ẏ kedẏrn gossẏmdeitha uatholỽch.\"\n
+ \"Je\" heb ẏnteu uendigeiduran \"onẏ allaf i ue hun cael ẏ urenhinaeth. ac aduẏd ẏs kẏmeraf gẏnghor am ẏch kennadỽri chỽi. O hẏn hẏt ban del amgen nẏ cheffỽch ẏ genhẏf i attep.\"\n
+ \"Je\" heb ỽẏnteu \"ẏr atteb goreu a gaffom ninheu attat ti ẏ doỽn ac ef ac aro ditheu ẏn kennadỽri ninheu.\"\n
+ \"arhoaf\" heb ef \"o doỽch ẏn ehegẏr\"\n
+ ...Iawn
+ Storfa USB
+ Cerdyn SD
+ BluetoothYn weladwy i ddyfeisiau Bluetooth gerllaw (%1$s)
@@ -144,6 +172,7 @@
Dim i\'w gweld gan ddyfeisiau Bluetooth eraill
+ Dim ond yn weladwy i ddyfeisiau wedi\'u paru
@@ -165,12 +194,17 @@
Ailenwi
+ Datgysylltu\'r ddyfais?
+ Bydd dy ffôn yn datgysylltu o \"%1$s.\"
+ Bydd dy lechen yn datgysylltu o \"%1$s.\"
+ Bydd dy ddyfais yn datgysylltu o \"%1$s.\"Datgysylltu
+ Nid oes gennyt ganiatâd i addasu gosodiadau Bluetooth.Mae %1$s yn weladwy i ddyfeisiau gerllaw tra bod gosodiadau Bluetooth ar agor.
@@ -181,74 +215,127 @@
Cyfeiriad Bluetooth y ddyfais: %1$s
+ Datgysylltu %1$s?
+ Darlledu
+ Analluogi\'r proffil?
+ Bydd hyn yn analluogi:<br><b>%1$s</b><br><br>Oddi wrth:<br><b>%2$s</b>
+ Dyfais Bluetooth dienw
+ Yn chwilio
+ Ni chanfuwyd unrhyw ddyfeisiau Bluetooth cyfagos.
+ Cais paru Bluetooth
+ Cais paruTara i baru gyda %1$s.
+ Ffeiliau a dderbyniwyd
+ Dewisa ddyfais Bluetooth
+ Mae %1$s eisiau troi Bluetooth ymlaen
+ Mae %1$s eisiau troi Bluetooth i ffwrdd
+ Mae ap eisiau troi Bluetooth ymlaen
+ Mae ap eisiau troi Bluetooth i ffwrdd
+ Mae %1$s eisiau gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill am %2$d eiliad.
+ Mae %1$s eisiau gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill am %2$d eiliad.
+ Mae ap eisiau gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill am %1$d eiliad.
+ Mae ap eisiau gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill am %1$d eiliad.
+ Mae %1$s eisiau gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yn y gosodiadau Bluetooth.
+ Mae %1$s eisiau gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yn y gosodiadau Bluetooth.
+ Mae ap eisiau gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yng ngosodiadau Bluetooth.
+ Mae ap eisiau gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yng ngosodiadau Bluetooth.
+ Mae %1$s eisiau troi Bluetooth ymlaen a gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill am %2$d eiliad.
+ Mae %1$s eisiau troi Bluetooth ymlaen a gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill am %2$d eiliad.
+ Mae ap eisiau troi Bluetooth ymlaen a gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill am %1$d eiliad.
+ Mae ap eisiau troi Bluetooth ymlaen a gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill am %1$d eiliad.
+ Mae %1$s eisiau troi Bluetooth ymlaen a gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yn y gosodiadau Bluetooth.
+ Mae %1$s eisiau troi Bluetooth ymlaen a gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yn y gosodiadau Bluetooth.
+ Mae ap eisiau troi Bluetooth ymlaen a gwneud dy lechen yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yn y gosodiadau Bluetooth.
+ Mae ap eisiau troi Bluetooth ymlaen a gwneud dy ffôn yn weladwy i ddyfeisiau Bluetooth eraill. Gellir newid hyn yn hwyrach yn y gosodiadau Bluetooth.
+ "Yn troi Bluetooth ymlaen\u2026"
+ "Yn troi Bluetooth i ffwrdd\u2026"
+ Awto-gysylltu
+ "Cais cysylltiad Bluetooth""Tara i gysylltu gyda \u0022%1$s\u0022."
+ "Wyt ti am gysylltu â \u0022%1$s\u0022?"
+ Mae %1$s eisiau medru gweld dy holl gysylltiadau a hanes galwadau. Caniatáu mynediad i %2$s?
+
+ Peidio â gofyn eto
+ Peidio â gofyn eto
+ Hoffai %1$s gyrchu dy negeseuon. Caniatáu mynediad i %2$s?
+ Hoffai %1$s gyrchu dy gerdyn SIM. Bydd caniatáu mynediad i\'r cerdyn SIM yn analluogi cysylltiad data ar dy ddyfais tra bod y cysylltiad yn parhau. Caniatáu mynediad %2$s i\'r SIM?
+ Dy ddyfeisiau
+ Dyddiad ac amser
+ Dewisa gylchfa amser
+ Data:Anfon darllediad
+ Gweithred:
+ Adnodd:
+ Cyfrif:
+ Procsi
+ Clirio
+ Iawn
+ SylwIawn
@@ -258,6 +345,7 @@
+ "PAC URL: "Cell Location Info (deprecated):
@@ -271,8 +359,11 @@
Gwasanaeth Data:
+ Crwydro:
+ IMEI:
+ IMSI:Ailgyfeirio Galwadau:
@@ -310,6 +401,7 @@
Rhedeg Prawf Ping
+ SMSC:Diweddariad
@@ -323,23 +415,36 @@
Yn Llwytho Rhestr Bandiau\u2026
+ Gosod
+ Aflwyddiannus
+ Llwyddiannus
+ Cyfanswm beitiau:
+ Dim cerdyn SD.
+ Beitiau ar gael:
+ Mae nawr yn ddiogel i ddatgysylltu\'r storfa USB.
+ Mae nawr yn ddiogel i dynnu\'r cerdyn SD allan.
+ Cafodd y storfa USB ei ddatgysylltu tra roedd yn cael ei ddefnyddio!
+ Cafodd y cerdyn SD ei dynnu allan tra roedd yn cael ei ddefnyddio!
+ Beitiau a defnyddiwyd:
+ Yn sganio\'r storfa USB am gyfryngau\u2026
+ Yn sganio\'r cerdyn SD am gyfryngau\u2026
@@ -352,6 +457,7 @@
Dewisiadau ieithoedd
+ TynnuYchwanegu iaith
@@ -382,16 +488,22 @@
Tynnu\'r iaith
+ Dewis gweithredGwybodaeth am y ddyfaisSgrin
+ Gwybodaeth y llechen
+ Gwybodaeth y ffôn
+ Storfa USB
+ Cerdyn SD
+ Gosodiadau procsi
@@ -400,9 +512,11 @@
Iawn
+ AnghofioCadw
+ IawnGosodiadau
@@ -416,14 +530,19 @@
Di-wifr a rhwydweithiau
+ Rheoli Wi\u2011Fi, Bluetooth, modd awyren, rhwydweithiau symudol, a rhwydweithiau preifat rhithwir (VPN)
+ Data symudolGalwadau
+ Negeseuon SMS
+ Caniatáu defnydd data dros rwydwaith symudolCaniatáu defnydd data wrth grwydro tramor
+ Data wrth grwydro
@@ -431,16 +550,20 @@
Mae\'n bosib y bydd costau sylweddol.
+ Pan wyt ti\'n defnyddio crwydro data mae\'n bosib y bydd costau sylweddol!\n\nMae hyn yn effeithio ar holl ddefnyddwyr y llechen hon.
+ Pan wyt ti\'n defnyddio crwydro data mae\'n bosib y bydd costau sylweddol!\n\nMae hyn yn effeithio ar holl ddefnyddwyr y ffôn hwn.Caniatáu data crwydro?
+ Dyddiad ac amserGosod dyddiad ac amser
+ Gosod dyddiad, amser, cylchfa amser a fformatauDyddiad ac amser awtomatigDefnyddio\'r cylchfa amser gan y rhwydwaith
+ Fformat 24\u2011awrDefnyddio fformat 24 awr
+ Amser
+ Gosod yr amser
+ Cylchfa amser
+ Dewis cylchfa amser
+ Dyddiad
+ Gosod y dyddiadTrefnu yn nhrefn yr wyddor
+ Dyddiad
+ AmserCloi yn awtomatig%1$s ar ôl cysgu
+ Yn syth ar ôl cysgu, oni bai fod %1$s yn ei gadw heb ei gloi.
+ %1$s ar ôl cysgu, oni bai fod %1$s yn ei gadw heb ei gloi.
+ Galluogi teclynnauDim
+ %1$d / %2$d
+ E.e. Android Aled.
+ Gwybodaeth defnyddiwr
+ Dangos gwybodaeth proffil ar y sgrin cloi
+ Gwybodaeth proffil
+ CyfrifonLleoliad
+ CyfrifonDiogelwch a lleoliad
+ Dewisiadau\'r sgrin cloi
@@ -511,30 +654,49 @@
+ Ôl bysRheoli olion bysedd
+ Defnyddio ôl bys ar gyfer
+ Ychwanegu ôl bys
+ clo sgrin
+
+ Gosod %1$d olion bysedd
+ Gosod %1$d ôl bys
+ Gosod %1$d ôl bys
+ Gosod %1$d ôl bys
+ Gosod %1$d ôl bys
+ Gosod %1$d ôl bys
+
+ Datgloi gydag ôl dy fysDefnyddio ôl dy fysCyffyrdda\'r synhwyrydd olion bysedd i ddatgloi dy ffôn, awdurdodi prynu pethau, neu fewngofnodi i apiau. Bydda\'n ofalus ôl bys pwy wyt ti\'n eu hychwanegu. Gall un ôl bys yn unig wneud yr holl bethau hyn.\n\nNodyn: Mae dy ôl bys yn llai diogel na phatrwm neu PIN cryf.
+ Defnyddia ôl dy fys i ddatgloi dy ffôn neu i awdurdodi prynu pethau.\n\nNodyn: Ni ellir defnyddio ôl dy fys i ddatgloi\'r ddyfais hon. Am ragor o wybodaeth, cysyllta â gweinyddwr dy sefydliad.
+ Defnyddia ôl dy fys i ddatgloi dy ffôn neu i awdurdodi prynu pethau.\n\nNodyn: Gall defnyddio ôl dy fys fod yn llai diogel na PIN neu batrwm cryf.Diddymu
+ ParhauNeidioNesaf
+ Neidio ôl bys?
+ Dyw gosod ôl bys ond yn cymryd munud neu ddau. Os wyt yn neidio hyn, mi fydd yn bosib gosod dy ôl fys yn y gosodiadau yn hwyrach.
+ Neidio sgrin cloi?Ni fydd nodweddion diogelu\'r ddyfais ar waith. Ni fydd yn bosib rhwystro eraill rhag defnyddio\'r llechen hon os yw\'n cael ei cholli, dwyn neu ailosod.
@@ -548,6 +710,7 @@
Ni fydd nodweddion diogelu\'r ddyfais ar waith. Ni fydd yn bosib rhwystro eraill rhag defnyddio\'r ffôn hwn os yw\'n cael ei golli neu ddwyn.
+ Neidio beth bynnagMynd nôl
@@ -558,6 +721,7 @@
Iawn
+ Dileu
@@ -566,7 +730,9 @@
+ Neidio gosod ôl bys?
+ Rwyt wedi dewis defnyddio ôl dy fys fel dull i ddatgloi dy ffôn. Os wyt ti\'n neidio\'r cam nawr, mi fydd yn rhai gosod hyn yn hwyrach. Dyw ond yn cymryd funud neu ddwy i\'w osod.Gorffen
@@ -576,56 +742,94 @@
+ Ychwanegu un arallNesaf
+ Dyw\'r sgrin cloi heb ei alluogi. I ddysgu mwy, cysyllta â gweinyddwr dy sefydliad.
+ Mwy o wybodaeth\n\nMae dal yn bosib defnyddio ôl dy fys i awdurdodi mynediad apiau a phrynu pethau.
+ Dysgu mwy
+ Coda dy fys, yna cyffyrdda\'r synhwyrydd eto
+ Gellir ychwanegu hyd at %d ôl bys
+ Rwyt wedi ychwanegu\'r nifer mwyaf o olion bysau a ganiateir.
+ Methu ag ychwanegu rhagor o ôl fysedd
+ Tynnu pob un o\'r olion bysedd?
+ Tynnu \'%1$s\'
+ Wyt ti am ddileu\'r ôl bys hwn?
+ Ni fyddi’n medru defnyddio dy olion bysedd i ddatgloi dy ffôn, awdurdodi prynu pethau, na mewngofnodi i apiau.
+ Ie, dw i am ei dynnu
+ Defnyddia ôl dy fys i barhau.
+ Amgryptiad
+ Amgryptio\'r llechen
+ Amgryptio\'r ffôn
+ Wedi’i amgryptioMae\'n bosib amgryptio dy gyfrifon, gosodiadau, apiau wedi\'u lawrlwytho a\'u data, cyfryngau, a ffeiliau eraill. Ar ôl amgryptio dy lechen, gan gymryd dy fod wedi gosod sgrin cloi (boed yn batrwm, PIN neu gyfrinair), bydd yn rhaid datgloi\'r sgrin i ddadgryptio\'r llechen pob tro mae\'n cael ei throi ymlaen. Yr unig ffordd arall i ddadgryptio yw ail-osod y ddyfais i fel yr oedd yn gadael y ffatri, gan golli dy holl ddata.\n\nMae amgryptio yn cymryd tuag awr neu\'n fwy o amser. Rhaid bod y batri yn llawn cyn dechrau a\'r llechen wedi ei gysylltu i brif ffynhonnell pŵer trwy gydol y broses. Os oes rhywbeth yn tarfu ar y broses, mae\'n bosib colli peth neu\'r cyfan o dy ddata.Mae\'n bosib amgryptio dy gyfrifon, gosodiadau, apiau wedi\'u lawrlwytho a\'u data, cyfryngau, a ffeiliau eraill. Ar ôl amgryptio dy ffôn, gan gymryd dy fod wedi gosod sgrin cloi (boed yn batrwm, PIN neu gyfrinair), bydd yn rhaid datgloi\'r sgrin i ddadgryptio\'r ffôn pob tro mae\'n cael ei droi ymlaen. Yr unig ffordd arall i ddadgryptio yw ail-osod y ddyfais i fel yr oedd yn gadael y ffatri, gan golli dy holl ddata.\n\nMae amgryptio yn cymryd tuag awr neu\'n fwy o amser. Rhaid bod y batri yn llawn cyn dechrau a\'r ffôn wedi ei gysylltu i brif ffynhonnell pŵer trwy gydol y broses. Os oes rhywbeth yn tarfu ar y broses, mae\'n bosib colli peth neu\'r cyfan o dy ddata.
+ Amgryptio\'r llechen
+ Amgryptio\'r ffôn
+ Rhaid gwefru\'r batri a rhoi cynnig arall arni.
+ Cysyllta gwefrydd a rhoi cynnig arall arni.
+ Nid oes PIN na chyfrinair i\'r sgrin cloi
+ Rhaid gosod PIN neu gyfrinair i\'r sgrin cloi cyn medru dechrau amgryptiad.
+ Amgryptio?
+ Nid yw\'n bosib dadwneud y weithred amgryptio a bydd data yn cael ei golli os yw\'r amgryptiad yn cael ei stopio cyn cwblhau.
+Mae amgryptio yn cymryd awr neu\'n hirach a bydd y llechen yn ailgychwyn sawl tro yn ystod yr amser yna.
+ Nid yw\'n bosib dadwneud y weithred amgryptio a bydd data yn cael ei golli os yw\'r amgryptiad yn cael ei stopio cyn cwblhau.
+Mae amgryptio yn cymryd awr neu\'n hirach a bydd y ffôn yn ailgychwyn sawl tro yn ystod yr amser yna.
+ Yn amgryptio
+ Arhosa tra bod dy lechen yn cael ei hamgryptio. Wedi cwblhau ^1%.
+ Arhosa tra bod dy ffôn yn cael ei amgryptio. Wedi cwblhau ^1%.
+ Arhosa tra bod dy lechen yn cael ei hamgryptio. Amser yn weddill: ^1
+ Arhosa tra bod dy ffôn yn cael ei amgryptio. Amser yn weddill: ^1I ddatgloi\'r llechen, tro\'r ddyfais i ffwrdd ac yna ymlaen eto.I ddatgloi\'r ffôn, tro\'r ddyfais i ffwrdd ac yna ymlaen eto.
+ Rhybudd: Caiff dy ddyfais ei chlirio o\'i holl ddata ar ôl ^1 ymdrech aflwyddiannus arall i\'w datgloi! Rho dy gyfrinair
+ Amgryptiad aflwyddiannusCafodd y broses amgryptio ei dorri ar ei draws ac nid yw\'n bosib ei gwblhau. O ganlyniad, dyw data dy lechen ddim yn hygyrch bellach.\n\nI barhau defnyddio dy lechen, rhaid ei ailosod nôl i fel yr oedd wrth adael y ffatri. Pan wyt ti\'n gosod dy lechen ar ôl ei ailosod, mi fydd yn cynnig cyfle iti adfer unrhyw ddata cafodd ei gadw wrth gefn i dy gyfrif Google. Cafodd y broses amgryptio ei dorri ar ei draws ac nid yw\'n bosib ei gwblhau. O ganlyniad, dyw data dy ffôn ddim yn hygyrch bellach.\n\nI barhau defnyddio dy ffôn, rhaid ei ailosod nôl i fel yr oedd wrth adael y ffatri. Pan wyt ti\'n gosod dy ffôn ar ôl ei ailosod, mi fydd yn cynnig cyfle iti adfer unrhyw ddata cafodd ei gadw wrth gefn i dy gyfrif Google.
+ Dadamgryptiad aflwyddiannusMae\'r cyfrinair a rhoddaist yn gywir, ond yn anffodus mae dy ddata yn llwgr.\n\nI barhau i ddefnyddio dy lechen, rhaid ei ailosod nôl i fel yr oedd yn gadael y ffatri.\n\nWrth osod dy lechen ar ôl ei ailosod, bydd cyfle i adfer unrhyw ddata a gafodd ei gadw fel copi wrth gefn ar dy gyfrif Google.Mae\'r cyfrinair a rhoddaist yn gywir, ond yn anffodus mae dy ddata yn llwgr.\n\nI barhau i ddefnyddio dy ffôn, rhaid ei ailosod nôl i fel yr oedd yn gadael y ffatri.\n\nWrth osod dy ffôn ar ôl ei ailosod, bydd cyfle i adfer unrhyw ddata a gafodd ei gadw fel copi wrth gefn ar dy gyfrif Google.
+ Newid dull mewnbwn
@@ -637,6 +841,7 @@
Datgloi gydag ôl dy fys
+ Dewis clo sgrinDewis clo gwaith
@@ -673,9 +878,11 @@
Dim diogelwch
+ PatrwmDiogelwch cymedrol
+ PINDiogelwch cymedrol i uchel
@@ -700,7 +907,9 @@
Dim
+ Patrwm
+ PINCyfrinair
+ Tynnu amddiffyniad y ddyfais?Tynnu amddiffyniad proffil?
@@ -744,29 +954,47 @@
"Ni fydd nodweddion diogelu proffil yn gweithio heb dy sgrin cloi.\n\nBydd olion dy fysedd sydd wedi eu cadw hefyd yn cael eu tynnu o'r proffil ac ni fydd yn bosib datgloi dy broffil, awdurdodi prynu pethau, na mewngofnodi i apiau hebddyn nhw."
+ Ie, dw i am ei dynnu.
+ Newid y patrwm datgloi
+ Newid y PIN datgloi
+ Newid y cyfrinair datgloiRho gynnig arall arni. Cais %1$d o %2$d.
+ Caiff dy ddata ei ddileu
+ Os rwyt yn rhoi patrwm anghywir ar dy ymdrech nesaf caiff holl ddata\'r ddyfais ei ddileu
+ Os rwyt yn rhoi PIN anghywir ar dy ymdrech nesaf caiff holl ddata\'r ddyfais ei ddileu
+ Os rwyt yn rhoi cyfrinair anghywir ar dy ymdrech nesaf caiff holl ddata\'r ddyfais ei ddileu
+ Os rwyt yn rhoi patrwm anghywir ar dy ymdrech nesaf caiff y defnyddiwr hwn ei ddileu
+ Os rwyt yn rhoi PIN anghywir ar dy ymdrech nesaf caiff y defnyddiwr hwn ei ddileu
+ Os rwyt yn rhoi cyfrinair anghywir ar dy ymdrech nesaf caiff y defnyddiwr hwn ei ddileu
+ Os rwyt yn rhoi patrwm anghywir ar dy ymdrech nesaf caiff dy broffil gwaith a\'i ddata eu dileu
+ Os rwyt yn rhoi PIN anghywir ar dy ymdrech nesaf caiff holl ddata\'r ddyfais ei ddileu
+ Os rwyt yn rhoi cyfrinair anghywir ar dy ymdrech nesaf caiff dy broffil gwaith a\'i ddata eu dileu
+ Bu gormod o ymdrechion aflwyddiannus. Caiff data\'r ddyfais ei ddileu.
+ Bu gormod o ymdrechion aflwyddiannus. Caiff y defnyddiwr hwn ei ddileu.
+ Bu gormod o ymdrechion aflwyddiannus. Caiff y proffil gwaith a\'i ddata eu dileu.Wfftio
+ Parhau
@@ -792,6 +1020,7 @@
Diddymu
+ ClirioDiddymu
@@ -800,6 +1029,14 @@
+
+ %d apiau yn weithredol
+ %d ap yn weithredol
+ %d ap yn weithredol
+ %d ap yn weithredol
+ %d ap yn weithredol
+ %d ap yn weithredol
+
@@ -807,9 +1044,13 @@
+ Bluetooth
+ Troi Bluetooth ymlaen
+ Bluetooth
+ BluetoothRheoli cysylltiadau, gosod enw\'r ddyfais, a\'r dulliau canfod
@@ -818,9 +1059,11 @@
+ Paru gyda %1$s?
+ PIN yn cynnwys llythrennau neu symbolauRhaid bod yn 16 digid
@@ -831,6 +1074,7 @@
I baru gyda:<br><b>%1$s</b><br><br>Teipia hyn arno:<br><b>%2$s</b>, ac yna pwyso \'Return\' neu \'Enter\'.
+ Caniatáu mynediad i dy gysylltiadau a hanes galwadau
@@ -841,20 +1085,24 @@
Gosodiadau\'r ddyfais
+ Dyfais wedi\'i pharuEnwCysylltiad rhyngrwyd
+ BysellfwrddCysylltiadau a hanes galwadau
+ Paru gyda\'r ddyfais hon?Mae %1$s eisiau mynediad at dy gysylltiadau a hanes galwadau.Mae %1$s eisiau paru gyda Bluetooth. Tra wedi cysylltu, mi fydd gyda mynediad at dy gysylltiadau a hanes galwadau.
+ Dyfeisiau wedi\'u paruDyfeisiau ar gael
@@ -869,6 +1117,7 @@
Datgysylltu a datbaru
+ Dewisiadau\u2026Uwch
@@ -877,31 +1126,42 @@
+ I wella cywirdeb lleoliad, gall apiau a gwasanaethau system dal i synhwyro dyfeisiau Bluetooth. Gellir newid hyn yn LINK_BEGINgosodiadau sganioLINK_END.
+ Methwyd â chysylltu. Rho gynnig arall arni.Cyfeiriad Bluetooth y ddyfais: %1$s
+ Ni fydd dy ffôn mwyach wedi ei baru â \"%1$s
+ Ni fydd dy lechen mwyach wedi ei pharu â \"%1$s.\"
+ Cysylltu â\u2026
+ Caiff %1$s ei ddatgysylltu o sain cyfryngau.
+ Caiff %1$s ei ddatgysylltu o sain heb ddwylo.
+ Caiff %1$s ei ddatgysylltu o ddyfais mewnbwn.
+ Dyfais Bluetooth wedi\'i pharuCysylltu
+ Defnnyddio ar gyferAilenwi
+ Caniatáu trosglwyddo ffeiliau i mewn
@@ -911,6 +1171,7 @@
Cofio\'r gosodiadau
+ Bwrw
@@ -919,10 +1180,13 @@
Wedi cysyllltu
+ Dim ar gael
+ Anghofio
+ IawnEnw
@@ -935,14 +1199,22 @@
+ 2.4 GHz
+ 5 GHz
+ %1$d Mbps
+ Mae %s eisiau troi Wi-Fi ymlaen
+ Mae %s eisiau troi Wi-Fi i ffwrdd
+ NFC
+ Caniatáu cyfnewid data pan mae\'r llechen yn cyffwrdd â dyfais arall
+ Caniatáu cyfnewid data pan mae\'r ffôn yn cyffwrdd â dyfais arallRhoi NFC ar waith
@@ -953,9 +1225,11 @@
+ Pan mae\'r nodwedd hon ar waith, mae\'n bosib pelydru cynnwys ap i ddyfais arall gyda NFC gan ddal y dyfeisiau yn agos at ei gilydd. Er enghraifft, gellir pelydru tudalennau gwe, fideos YouTube, cysylltiadau, a mwy.\n\nRho\'r dyfeisiau wrth ei gilydd (cefn wrth gefn fel arfer) yna cyffyrdda dy sgrin. Mae\'r ap yn pennu beth sy\'n cael ei belydru.
+ Troi Wi-Fi ymlaenGosodiadau Wi\u2011Fi
@@ -968,12 +1242,15 @@
Yn troi Wi-Fi i ffwrdd\u2026
+ Gwall
+ Dyw band 5 GHz ddim ar gael yn y wlad hon
+ Bydd Wi\u2011Fi yn troi ymlaen eto o fewn cyrraedd rhwydweithiau safon uchel wedi\'u cadw, fel dy rwydwaith cartref.
@@ -983,7 +1260,9 @@
Defnyddio dim ond rhwydweithiau gyda chysylltiad da i\'r rhyngrwyd
+ Cysylltu â rhwydweithiau agored
+ Cysylltu yn awtomatig â rhwydweithiau cyhoeddus ansawdd uchel
@@ -991,6 +1270,7 @@
+ I wella cywirdeb lleoliad, gall apiau a gwasanaethau system dal i sganio am rwydweithiau Wi\u2011Fi. Gellir newid hyn yn LINK_BEGINgosodiadau sganioLINK_END.
@@ -1000,30 +1280,44 @@
+ Gwella effeithlonrwydd
+ Lleihau defnydd batri tra bod Wi\u2011Fi ymlaen
+ Cyfyngu ar ddefnydd batri Wi-Fi
+ Defnyddio data symudol pan nad oes gan y Wi\u2011Fi mynediad i\'r rhyngrwyd. Mae\'n bosib bydd costau am ddefnydd data.Ychwanegu rhwydwaith
+ Dewisiadau Wi\u2011Fi
+ Mae Wi\u2011Fi yn troi ymlaen eto\'n awtomatig
+ Dyw Wi\u2011Fi ddim yn troi ymlaen eto yn awtomatig
+ Rhwydweithiau Wi\u2011Fi
+ Botwm Gwthio WPS
+ Rhagor o ddewisiadau
+ Rhoi Pin WPSUwch
+ Ffurfweddu
+ Anghofio\'r rhwydwaith
+ Addasu\'r rhwydwaithI weld pa rwydweithiau sydd ar gael, rhaid troi Wi-Fi ymlaen.
@@ -1031,6 +1325,7 @@
Yn chwilio am rwydweithiau Wi-Fi\u2026
+ MwyGosod awtomatig (WPS)
@@ -1042,13 +1337,17 @@
Dewislen disgyn Dewisiadau Uwch. Tariad dwbl i\'w ehangu.
+ Yn dechrau WPS\u2026Pwysa\'r botwm \"Wi\u2011Fi Protected Setup\" ar dy lwybrydd neu \"router\". Mae\'n debyg ei bod gyda \u201cWPS\u201d neu\'r symbol yma:
+ WPS wedi llwyddo. Yn cysylltu i\'r rhwydwaith\u2026
+ Mae WPS eisoes ar y gweill a gall gymryd hyd at ddau funud i\'w gwblhau.
+ Methodd WPS. Ceisia eto mewn ychydig funudau.
@@ -1076,17 +1375,23 @@
Parth
+ AdnabodCyfrinair
+ Dangos cyfrinair
+ Band 2.4 GHz
+ Band 5 GHz
+ Gosodiadau IPRhannu gyda defnyddwyr eraill y ddyfais
+ (heb newid)Dewisa
@@ -1105,39 +1410,49 @@
Rhaid rhoi parth.
+ WPS ar gael\u0020(WPS ar gael)
+ Rho gyfrinair dy rwydwaithCaniatáu
+ GwrthodMewngofnodi er mwyn cysylltu?
+ Mae ar %1$s angen dy fod wedi mewngofnodi ar-lein cyn medru cysylltu â\'r rhwydwaith.CYSYLLTUDoes gan y rhwydwaith hwn dim mynediad i\'r rhyngrwyd. Parhau wedi cysylltu?Dyw\'r Wi\u2011Fi heb gysylltu â\'r rhyngrwyd.
+ Mae\'n bosib newid i\'r rhwydwaith symudol pan mae\'r cysylltiad Wi\u2011Fi yn wael. Mae\'n bosib bydd costau am ddefnydd data.Aros ar Wi\u2011FiByth dangos etoCysylltu
+ Methwyd â chysylltu â\'r rhwydwaith
+ Addasu
+ Methwyd ag anghofio\'r rhwydwaithCadw
+ Methwyd a chadw\'r rhwydwaithDiddymu
+ Rhwydweithiau wedi\'u cadwGosodiadau Wi-Fi uwch
@@ -1150,10 +1465,13 @@
+ DNSCyfeiriadau IPv6
+ Rhwydweithiau wedi\'u cadw
+ Gosodiadau IPDyw gosodiadau uwch Wi\u2011Fi ddim ar gael ar gyfer y defnyddiwr hwn.
@@ -1166,7 +1484,9 @@
+ DNS 1
+ DNS 2
@@ -1185,32 +1505,48 @@
Datgysylltu?
+ Os wyt yn datgysylltu, bydd dy gysylltiad gyda %1$s yn dod i ben.
+ Os wyt yn datgysylltu, bydd dy gysylltiad gyda %1$s a %2$s dyfais arall yn dod i ben.
+ Wyt ti am ddiddymu\'r gwahoddiad i gysylltu gyda %1$s?
+ Anghofio\'r grŵp hwn?
+ Llecynnau Cysylltiad Wi\u2011Fi
+ Mae\'r ap yn rhannu cynnwys. I rannu cysylltiad rhyngrwyd, tro\'r llecyn Wi-Fi i ffwrdd ac yna ymlaen eto
+ Band AP
+ Gall apiau creu llecyn Wi-Fi er mwyn rhannu cynnwys gyda dyfeisiau cyfagos.
+ Yn troi\'r llecyn Wi-Fi ymlaen\u2026
+ Yn troi\'r llecyn Wi-Fi i ffwrdd\u2026
+ Mae %1$s yn weithredol
+ Gwall llecyn Wi\u2011Fi cludadwy
+ Creu llecyn cysylltiad Wi\u2011Fi
+ Creu llecyn cysylltiad Wi\u2011Fi
+ Llecyn AndroidAP WPA2 PSK
+ Llecyn Wi-Fi %1$s%2$s hotspotLlecynAndroid
+ Galwadau Wi-FiTroi Galwadau Wi-Fi ymlaen
@@ -1273,6 +1610,7 @@
Dewisiadau galw
+ Modd galwadau Wi-FiDewis crwydro (tramor)
@@ -1280,13 +1618,13 @@
Dewis crwydro (tramor)
- Wi-Fi preferred
+ Ffafrio Wi-FiMobile preferredWi-Fi yn unigWi-Fi
- Mobile
+ SymudolWi-Fi yn unig
@@ -1294,15 +1632,25 @@
"1""0"
+
+ Ffafrio Wi-Fi
+ Mobile preferred
+ Wi-Fi
- Mobile
+ Symudol
+
+
+ "2"
+ "1"
+ Tra bod galwadau Wi-Fi ymlaen, gall dy ffôn dargyfeirio galwadau trwy rwydweithiau Wi-Fi neu rwydwaith dy ddarparwr gwasanaeth symudol, yn dibynnu ar dy osodiadau a pha signal sy\'n gryfach ar y pryd. Cyn troi\'r nodwedd hon ymlaen, mae\'n syniad da gwirio gyda dy ddarparwr symudol am ffioedd a manylion eraill.Diweddaru\'r Cyfeiriad Argyfwng
+ Y cyfeiriad i\'w ddefnyddio gan wasanaethau brys fel dy leoliad yn yr achos dy fod yn gwneud galwad brys dros Wi-FiDangosydd
@@ -1312,7 +1660,9 @@
+ Effeithiau sain
+ Uchder sain caniad ffônDirgrynu pan yn ddistaw
@@ -1324,11 +1674,14 @@
+ Nid yw\'n cefnogi proffiliau gwaithSain hysbysiad rhagosodedig
+ Cyfryngau
+ LarwmTonau cyffwrdd pad deialu
@@ -1339,20 +1692,25 @@
Dirgrynu wrth daro
+ Cerddoriaeth, fideo, gemau a chyfryngau eraillTôn caniad a hysbysiadauHysbysiadau
+ LarymauDistewi\'r tôn caniad a hysbysiadau
+ Distewi cerddoriaeth a chyfryngau eraillDistewi hysbysiadau
+ Distewi larymau
+ Sain
@@ -1372,7 +1730,9 @@
+ Chwilio
+ Rheoli gosodiadau a hanes chwilio
@@ -1381,7 +1741,9 @@
Troi\'r sgrin yn awtomatig
+ Lliwiau
+ Naturiol
@@ -1397,25 +1759,36 @@
Disgleirdeb addasedig
+ Addasu disgleirdeb y sgrin yn ôl goleuniI ffwrdd
+ Ffafrio disgleirdeb isel iawn
+ Ffafrio disgleirdeb isel
+ Ffafrio disgleirdeb arferol
+ Ffafrio disgleirdeb uchel
+ Ffafrio disgleirdeb uchel iawnI ffwrdd
+ Isel iawn
+ Isel
+ Uchel
+ Y lefel o ddisgleirdeb sydd well gennyt ti
+ Addasu disgleirdeb y sgrin yn ôl goleuni. Pan fydd y nodwedd hon ar waith, mi fydd dal yn bosib i ti addasu\'r disgleirdeb dy hun dros dro.Golau Nos
@@ -1425,9 +1798,12 @@
Dim
+ Mae\'n troi ymlaen am amser penodol
+ Amser dechrau
+ Amser gorffenStatws
@@ -1463,6 +1839,7 @@
+ BythI ffwrdd
@@ -1470,12 +1847,15 @@
+ Dechrau nawr
+ GosodiadauDisgleirdeb awtomatig
+ Ymlaen o hyd / Defnydd uwch o\'r batriHysbysiadau newydd
@@ -1484,6 +1864,7 @@
Deffro\'r sgrin pan mae hysbysiadau\'n cael eu derbyn
+ Ymlaen o hydMaint ffont
@@ -1495,21 +1876,29 @@
I ffwrdd
+ Wedi cloi
+ Cloi cerdyn SIM
+ Newid PIN SIM
+ PIN SIM
+ Cloi cerdyn SIM
+ Hen PIN SIM
+ PIN SIM
+ PIN Anghywir
@@ -1519,11 +1908,13 @@
Diddymu
+ Canfuwyd mwy nag un SIM
+ %1$s yw\'r unig SIM yn dy ddyfais. Wyt ti eisiau defnyddio\'r cerdyn SIM hwn ar gyfer negeseuon SMS, data a galwadau symudol?
@@ -1531,21 +1922,27 @@
+ Diweddariadau systemFersiwn Android
+ Lefel patsh diogelwch AndroidModel
+ Model a chaledwedd
+ Fersiwn caledwedd
+ Fersiwn BasebandFersiwn cnewyllynRhif adeiledd
+ Statws SELinuxDim ar gael
@@ -1559,25 +1956,35 @@
+ Gosodiadau storfa
+ ICCID
+ MDN
+ Fy rif ffôn
+ MIN
+ MSID
+ MEID
+ ICCID
+ Crwydro
+ RhwydwaithCyfeiriad MAC Wi-Fi
@@ -1585,24 +1992,32 @@
Rhif cyfres
+ Dim ar gaelAmser yn rhedeg
+ Storfa mewnol
+ Storfa USB
+ Cerdyn SD
+ Ar gael
+ Cyfryngau
+ LlwythiLluniau, fideosSain (cerddoriaeth, tonau caniad, podlediadau, ayyb)
+ Ffeiliau eraill
@@ -1620,7 +2035,9 @@
Dileu popeth ar y cerdyn SD
+ Mae\'n dileu\'r holl ddata ar y storfa USB mewnol, megis lluniau a cherddoriaeth
+ Mae\'n dileu\'r holl ddata ar y cerdyn SD, megis lluniau a cherddoriaeth
@@ -1644,26 +2061,36 @@
+ FformatioFformatio fel datgysylltadwy
+ Fformatio fel mewnol
+ Mudo data
+ ArchwilioRhyddhau lleRheoli storfa
+ Cysylltiad USB cyfrifiadur
+ Cysylltu fel
+ Mae\'n caniatáu i ti drosglwyddo ffeiliau ar Windows neu gan ddefnyddio Android File Transfer ar Mac (gweler www.android.com/filetransfer)
+ Mae\'n caniatáu i ti drosglwyddo lluniau gan ddefnyddio meddalwedd camera, a throsglwyddo unrhyw ffeiliau ar gyfrifiaduron na sy\'n cefnogi MTP.
+ MIDI
+ Defnyddwyr eraillStorfa\'r ddyfais
@@ -1680,6 +2107,7 @@
+ Mae %1$s wedi\'i fformatioAilenwi\'r storfa
@@ -1693,22 +2121,30 @@
I ddefnyddio apiau, lluniau neu ddata ^1, rho gynnig ar ei ailosod yn y ddyfais.\n\nFel arall, mae\'n bosib dewis anghofio\'r storfa hon os nad yw\'r ddyfais ar gael.\n\nOs wyt yn dewis ei anghofio, bydd yr holl ddata mae\'r ddyfais yn ei gynnwys yn cael ei golli am byth.\n\nMae\'n bosib ailosod yr apiau yn hwyrach, ond bydd y data maen nhw wedi cadw ar y ddyfais hon wedi ei golli.
+ Anghofio ^1?
+ Apiau
+ DelweddauFideos
+ SainArall
+ System
+ Archwilio ^1
- Mae Arall yn cynnwys ffeiliau wedi\'i rhannu a gadwyd gan apiau, ffeiliau wedi\'u lawrlwytho o\'r rhyngrwyd neu Bluetooth, ffeiliau Android, ac yn y blaen.
-\n\nI weld cynnwys gweledol y cerdyn SD ^1, tapia Archwilio.
+ Mae Arall yn cynnwys ffeiliau wedi\'u rhannu a gadwyd gan apiau, ffeiliau wedi\'u lawrlwytho o\'r rhyngrwyd neu Bluetooth, ffeiliau Android, ac yn y blaen.
+\n\nI weld cynnwys gweledol y cerdyn SD ^1, tara Archwilio.
+ Gall ^1 fod wedi cadw lluniau, cerddoriaeth, apiau, neu ddata arall gan ddefnyddio ^2 o\'r storfa.
+\n\nI weld manylion, newidia defnyddiwr i ^1.Defnyddio fel storfa datgysylltadwy
@@ -1717,11 +2153,13 @@
Er mwyn cadw unrhyw beth beth ar y ddyfais hon yn unig, gan gynnwys apiau a lluniau. Bydd rhaid ei fformatio a ni fydd yn gweithio gyda dyfeisiau eraill.
+ Fformatio fel storfa fewnolMae hyn angen fod ^1 yn cael ei fformatio i\'w wneud yn ddiogel.\n\nAr ôl ei fformatio, bydd ^1 ond yn gweithio yn y ddyfais hon.\n\nMae fformatio yn dileu\'r holl ddata sydd eisoes ar ^1. Er mwyn osgoi colli\'r data, mae\'n dda ystyried creu copi wrth gefn.Fformatio fel storfa datgysylltadwy
+ Mae hyn angen i\'r ^1 cael ei fformatio.\n\nMae fformatio yn dileu\'r holl ddata eisoes ar y ^1. Os am osgoi colli\'r data, rhaid cadw copi wrth gefn rhywle arall. Dileu popeth a fformatio
@@ -1729,54 +2167,85 @@
Paid â thynnu\'r ^ hyd nes bod y fformatio wedi cwblhau.
+ Symud data i storfa newyddGellir symud dy luniau, ffeiliau a rhai apiau i\'r ^1.\n\nBydd eu symud yn cymryd tua ^2 ac yn rhyddhau ^3 o le yn y storfa fewnol. Bydd rhai apiau ddim yn gweithio tra bod y trosglwyddo ar waith.
+ Symud nawr
+ Symud yn hwyrach
+ Symud data nawr
+ Mae\'r symud yn cymryd tua ^1. Mi fydd yn rhyddhau ^2 ar ^3.
+ Symud
+ Yn symud data\u2026
+ Mae ^1 yn barod
+ Mae dy ^1 wedi ei osod ac yn barod i\'w ddefnyddio gyda lluniau a chyfryngau eraill.
+ Mae dy ^1 newydd yn gweithio.\n\nI symud lluniau, ffeiliau, a data apiau i\'r ddyfais hon, gweler Dewisiadau > Storfa.
+ Symud ^1Bydd symud ^1 a\'i ddata i ^2 ond yn cymryd ychydig funudau. Ni fyddi\'n medru defnyddio\'r ap nes bod y trosglwyddo wedi ei gwblhau.\n\nPaid â thynnu ^2 nes bod y trosglwyddo wedi ei gwblhau.
+ Yn symud ^1\u2026
+ Mae\'r ^1 hwn yn ymddangos i fod yn araf.
+\n\nMae\'n bosib parhau, ond mae\'n bosib y bydd apiau sy\'n cael eu symud i\'r lleoliad hwn yn araf wrth stopio a dechrau a gall trosglwyddo data gymryd amser hir.
+\n\nYstyria defnyddio ^1 mwy cyflym ar gyfer perfformiad gwell.Statws batri
+ Lefel batri
+ APNau
+ Golygu pwynt mynediadHeb ei osodEnw
+ APN
+ Procsi
+ Enw defnyddiwrCyfrinair
+ Gweinydd
+ MMSC
+ Procsi MMS
+ Porth MMS
+ MCC
+ MNCDim
+ PAP
+ CHAP
+ PAP neu CHAP
+ Math APN
@@ -1784,6 +2253,7 @@
+ Dileu APNCadw
@@ -1798,10 +2268,12 @@
+ Ailosod dewisiadauGellir ailosod rhwydwaith, apiau neu\'r ddyfais
+ Ailosod Wi-Fi, symudol a BluetoothBydd hyn yn ailosod pob gosodiad rhwydwaith, gan gynnwys:\n\n
Wi\u2011Fi
\n
Data symudol
\n
Bluetooth
\"
@@ -1818,13 +2290,17 @@
Ailosodwyd gosodiadau rhwydweithiau
+ Dileu\'r holl ddata (ailosod i fel yr oedd yn gadael y ffatri)
+ Bydd hyn yn dileu\'r holl data o storfa mewnol dy lechen, gan gynnwys:\n\n
Dy gyfrif Google
\n
Data a gosodiadau system ac apiau
\n
Apiau wedi\'u lawrlwytho
+ Bydd hyn yn dileu\'r holl data o storfa mewnol dy ffôn, gan gynnwys:\n\n
Dy gyfrif Google
\n
Data a gosodiadau system ac apiau
\n
Apiau wedi\'u lawrlwytho
\n\nRwyt ar hyn o bryd wedi mewngofnodi i\'r cyfrifon a ganlyn:\n\n\nMae defnyddwyr eraill ar y ddyfais hon.\n
+
\n\nI chwyddo dros dro, tara\'r sgrin yn gyflym tair gwaith gan gadw dy drydydd cyffyrddiad.\n
Llusga i symud o amgylch y sgrin
\n
Coda dy fys i ddadchwyddo
\n\nNid yw\'n bosib chwyddo ar y bysellfwrdd na\'r bar llywio.
+ Man fo chwyddo wedi\'i droi ymlaen, defnyddia\'r botwm Hygyrchedd ar waelod y sgrin i chwyddo\'n gyflym.\n\nI chwyddo, tara\'r botwm Hygyrchedd, yna tara rhywle ar y sgrin.\n
Llusga dau fys i sgrolio
\n
Pinsia dau fys i addasu\'r chwyddo
\n\nI chwyddo dros dro, tara\'r botwm Hygyrchedd, yna cyffyrdda a dal dy gyffyrddiad rhywle ar y sgrin.\n
Llusga i symud o amgylch y sgrin
\n
Coda dy fys i ddadchwyddo
\n\nNid yw\'n bosib chwyddo ar y bysellfwrdd na\'r bar llywio.
+ Mae\'r botwm Hygyrchedd wedi\'i osod i %1$s. I ddefnyddio chwyddo, cyffyrdda a dal y botwm Hygyrchedd, yna dewisa chwyddo.
+ Caniatáu o\'r sgrin gloi
+ Testun cyferbyniad uchel
+ Awto diweddaru chwyddo\'r sgrinBotwm pŵer yn gorffen galwad
@@ -2536,9 +3193,13 @@ Defnyddio\'r gwirydd sillafu hwn?
Cyfuno sianeli wrth chwarae sain
+ Oediad cyffwrdd a dal
+ Gwrthdroad lliwiau
+ Gall gael effaith ar berfformiad
+ Clicio pan mae\'r pwyntydd yn stopio symudOedi cyn clicio
@@ -2546,7 +3207,9 @@ Defnyddio\'r gwirydd sillafu hwn?
I FFWRDD
+ Dangos yng Ngosodiadau Cyflym
+ Modd cywiroOediad hynod o fyr (%1$d me)
@@ -2593,6 +3256,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Oediad hynod o hir (%1$d me)
+ GosodiadauYmlaen
@@ -2616,47 +3280,69 @@ Defnyddio\'r gwirydd sillafu hwn?
Anhryloywder ffenestr capsiwn
+ Lliw testunAnhryloywder testun
+ Lliw ymyl
+ Math o ymylTeulu ffontBydd capsiynau yn edrych fel hyn
+ AaRhagosodiad
+ Lliw
+ RhagosodiadDim
+ Gwyn
+ Llwyd
+ Du
+ Coch
+ Gwyrdd
+ Glas
+ Gwyrddlas
+ Melyn
+ Magenta
+ Defnyddio %1$s?
+ Mae ar %1$s angen:
+ Os wyt yn troi %1$s ymlaen, ni fydd dy ddyfais yn defnyddio\'r sgrin cloi i wella amgryptiad data.
+ Gan fod troi %1$s i ffwrdd yn effeithio ar dy amgryptiad data, rhaid cadarnhau dy batrwm.
+ Gan fod troi %1$s i ffwrdd yn effeithio ar dy amgryptiad data, rhaid cadarnhau dy PIN.
+ Gan fod troi %1$s i ffwrdd yn effeithio ar dy amgryptiad data, rhaid cadarnhau dy gyfrinair.
+ Stopio %1$s?Bydd taro Iawn yn stopio %1$s.
@@ -2664,6 +3350,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+ GosodiadauArgraffu
@@ -2676,7 +3363,9 @@ Defnyddio\'r gwirydd sillafu hwn?
Dim gwasanaeth wedi\'i osod
+ Ni ddaethpwyd o hyd i argraffydd
+ GosodiadauYmlaen
@@ -2696,9 +3385,11 @@ Defnyddio\'r gwirydd sillafu hwn?
Diddymu
+ %1$s\n%2$sYn argraffu %1$s
+ Yn diddymu %1$s
@@ -2710,31 +3401,47 @@ Defnyddio\'r gwirydd sillafu hwn?
Batri
+ Pethau sydd wedi bod yn defnyddio\'r batri
+ Dyw data defnydd batri ddim ar gael.
+ %1$s
+ - %2$s
+ %1$s yn weddill
+ Caniatáu i\'r ap hwn redeg yn y cefndir
+ Gall yr ap redeg yn y cefndir pan nad yw\'n cael ei ddefnyddio
+ Ni chaniateir i\'r ap redeg yn y cefndir
+ ^1 yn ôl
+ Defnydd apiau ers gwefru\'n llawn (^1 yn ôl)
+ Pa mor hir mae\'r sgrin wedi bod ymlaen ers gwefru\'n llawn
+ Defnydd batri ers datgysylltu\'r gwefrydd
+ Defnydd batri ers ailosod
+ %1$s ar fatri
+ Yn gwefruSgrin ymlaen
+ GPS ymlaenFflacholau ymlaen.
@@ -2746,25 +3453,36 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Defnydd batri uwch
+ Manylion hanes
+ Defnydd batri
+ Apiau sy\'n draenio batri
+ %1$d ap yn camymddwynNi all dy ffôn reoli\'r batri fel arfer gan fod %1$s yn cadw dy ffôn yn effro.\n\nI geisio cywiro hyn, rhaid stopio\'r ap.\n\nOs yw hyn yn parhau i ddigwydd, mae\'n bosib bydd yn rhaid dadosod yr ap i wella perfformiad batri.
+ Ni all dy lechen reoli\'r batri yn yr un modd ag arfer gan fod %1$s yn cadw dy ddyfais yn effro.\n\nI geisio cywiro hyn, rhaid stopio\'r ap.\n\nOs yw hyn yn parhau i ddigwydd, mae\'n bosib bydd yn rhaid dadosod yr ap i wella perfformiad batri.
+ Ni all dy ddyfais reoli\'r batri yn yr un modd ag arfer gan fod %1$s yn cadw dy ddyfais yn effro.\n\nI geisio cywiro hyn, rhaid stopio\'r ap.\n\nOs yw hyn yn parhau i ddigwydd, mae\'n bosib bydd yn rhaid dadosod yr ap i wella perfformiad batri.
+ Ni all dy ffôn reoli\'r batri yn yr un modd ag arfer gan fod %1$s yn deffro\'r ddyfais o hyd.\n\nI geisio cywiro hyn, gellir stopio %1$s.\n\nOs yw hyn yn parhau i ddigwydd, mae\'n bosib bydd yn rhaid dadosod yr ap i wella perfformiad batri.
+ Ni all dy lechen reoli\'r batri yn yr un modd ag arfer gan fod %1$s yn deffro\'r ddyfais o hyd.\n\nI geisio cywiro hyn, gellir stopio %1$s.\n\nOs yw hyn yn parhau i ddigwydd, mae\'n bosib bydd yn rhaid dadosod yr ap i wella perfformiad batri.
+ Ni all dy ddyfais reoli\'r batri yn yr un modd ag arfer gan fod %1$s yn deffro\'r ddyfais o hyd.\n\nI geisio cywiro hyn, gellir stopio %1$s.\n\nOs yw hyn yn parhau i ddigwydd, mae\'n bosib bydd yn rhaid dadosod yr ap i wella perfformiad batri.
+ Stopio\'r apNi all dy ffôn rheoli\'r batri yn y modd arferol gan fod %1$s yn deffro\'r ffôn o hyd.\n\nI gywiro\'r sefyllfa, awgrymir stopio %1$s a\'i rhwystro rhag rhedeg yn y cefndir.
@@ -2775,8 +3493,11 @@ Defnyddio\'r gwirydd sillafu hwn?
Troi i ffwrdd
+ Troi lleoliad i ffwrdd?
+ Ni all dy ffôn rheoli\'r batri yn yr un modd ag arfer gan fod %1$s yn gwneud ceisiadau cyson am dy leoliad tra nad wyt yn defnyddio\'r ap.\n\nI gywiro hyn, gellir troi lleoliad i ffwrdd ar gyfer yr ap hwn.
+ Ni all dy lechen rheoli\'r batri yn yr un modd ag arfer gan fod %1$s yn gwneud ceisiadau cyson am dy leoliad tra nad wyt yn defnyddio\'r ap.\n\nI gywiro hyn, gellir troi lleoliad i ffwrdd ar gyfer yr ap hwn.Troi i ffwrdd
@@ -2785,25 +3506,36 @@ Defnyddio\'r gwirydd sillafu hwn?
Fflacholau
+ Camera
+ Wi\u2011Fi
+ Bluetooth
+ Galwadau llais
+ Amrywiol
+ ApiauGwasanaethau
+ System
+ Defnyddwyr eraill
+ Cadw\'n effro
+ GPS
+ LlechenFfôn
@@ -2815,8 +3547,11 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Sain
+ Fideo
+ CameraFflacholau
@@ -2826,50 +3561,66 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Gorfodi stopio
+ Gwybodaeth apGosodiadau apiauGosodiadau\'r sgrin
+ Gosodiadau Wi\u2011FiGosodiadau Bluetooth
+ Batri a ddefnyddiwyd gan alwadau llais
+ Batri a ddefnyddiwyd tra bod y llechen yn segur
+ Batri a ddefnyddiwyd tra bod y ffôn yn segur
+ Batri a ddefnyddiwyd gan y fflacholau
+ Batri a ddefnyddiwyd gan y camera
+ Batri a ddefnyddiwyd gan y sgrin a\'i golau cefn
+ Batri a ddefnyddiwyd gan Wi-Fi
+ Batri a ddefnyddiwyd gan BluetoothTroi Bluetooth i ffwrdd pan nad yw\'n cael ei ddefnyddio
+ Batri a ddefnyddiwyd gan apiau
+ Batri a ddefnyddiwyd gan y defnyddiwr
+ %d mAh
+ Dadansoddiad ers y gwefriad llawn ddiwethafMae\'r data defnydd batri yn amcangyfrif a gall newid yn ôl defnydd
+ Defnydd batri
@@ -2883,20 +3634,26 @@ Defnyddio\'r gwirydd sillafu hwn?
Ail-lwytho
+ Android OSArbedwr batri
+ Troi ymlaen yn awtomatig
+ Byth
+ pan fo %1$s o fatri
+ Canran batriDangos canran batri yn y bar statws
+ Defnydd cof%1$s
@@ -2912,6 +3669,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Android OSCnewyllyn
@@ -2926,18 +3684,25 @@ Defnyddio\'r gwirydd sillafu hwn?
Gwasanaethau
+ Manylion cof
+ Defnydd cofCnewyllynStorfeydd cnewyll
+ Cyfnewid ZRam
+ Ar gael
+ Cyfanswm
+ 3 awr
+ 6 awr12 awr
@@ -2948,12 +3713,14 @@ Defnyddio\'r gwirydd sillafu hwn?
Cuddio apiau system
+ Dangos canrannauCefndir
+ Blaendir
@@ -2978,24 +3745,30 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Bydd y gwasanaeth mewnbwn llais hwn yn gallu perfformio monitro ymlaen-o-hyd a rheoli apiau y mae\'n bosib eu rheoli â llais ar dy ran. Mae\'n dod o\'r ap %s. Galluogi defnydd o\'r gwasanaeth hwn?Cyflymder a thraw llefaru
+ Injan
+ Lleisiau
+ Agor apDiddymuAilosod
+ ChwaraeRheoli pŵer
+ %1$s%2$symlaen
@@ -3004,16 +3777,22 @@ Defnyddio\'r gwirydd sillafu hwn?
+ BluetoothLleoliad
+ Cysoni
+ %1$s disgleirdeb
+ llawn
+ hanneri ffwrdd
+ VPN
@@ -3023,6 +3802,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Gosod tystysgrifau o gerdyn SD
+ Tynnu pob tystysgrif
@@ -3040,8 +3820,11 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Cyfrinair cyfredol:
+ Tynnu\'r holl gynnwys?
+ Cyfrinair anghywir
@@ -3054,6 +3837,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Copi wrth gefnCadw copi wrth gefn ac adfer
@@ -3065,9 +3849,11 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Dyw\'r gwasanaeth cadw copi wrth gefn ddim ar gael
+ Stopio cadw copi wrth gefn o dy gyfrifon Wi\u2011Fi, nodau tudalennau, gosodiadau eraill, a data apiau, a dileu\'r holl gopïau ar weinyddion Google?Stopio cadw copi wrth gefn o ddata\'r ddyfais (megis cyfrineiriau Wi-Fi a hanes galwadau) a data apiau (megis gosodiadau a ffeiliau sy\'n cael eu cadw gan apiau), a hefyd dileu\'r holl gopïau wrth gefn oddi ar weinyddion?
@@ -3082,25 +3868,33 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Personol
+ Gwaith
+ Rhoi ap gweinyddu\'r ddyfais ar waith?
+ Rhoi\'r ap gweinyddu dyfais hwn ar waith
+ Bydd rhoi\'r ap hwn ar waith yn galluogi\'r ap %1$s i wneud y canlynol:Mae\'r ap gweinyddwr hwn yn weithredol ac yn caniatáu i\'r ap %1$s gwneud y gweithredoedd hyn:
+ Wrth barhau, bydd dy Ddefnyddiwr yn cael ei reoli gan dy Weinyddwr ac mae\'n bosib y bydd gan y Gweinyddwr gyda\'r gallu i gadw data cysylltiedig, yn ogystal â dy ddata personol.\n\nMae gan dy weinyddwr y gallu i fonitro a rheoli gosodiadau, mynediad, apiau, a data yn gysylltiedig â\'r Defnyddiwr hwn, gan gynnwys gweithgaredd rhwydwaith a gwybodaeth lleoliad dy ddyfais.Rhagor o fanylion
+ CyffredinolLog hysbysiadauTôn caniad a dirgrynu galwadau
+ SystemGosod Wi\u2011Fi
@@ -3173,6 +3967,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Rho ffurfweddiad y rhwydwaithCysylltu i rwydwaith newydd
@@ -3197,21 +3992,29 @@ Defnyddio\'r gwirydd sillafu hwn?
Tara Nesaf i barhau i osod.\n\nTara Nôl i gysylltu â rhwydwaith Wi\u2011Fi gwahanol.
+ Galluogwyd cysoni
+ Analluogwyd cysoni
+ Yn cysoni nawr
+ Gwall cysoni.Methwyd â chysoni
+ Cysoni\'n weithredol
+ Cysoni
+ Ychwanegu cyfrifModd gwaithCaniatáu proffil gwaith i weithio, gan gynnwys apiau, cysoni\'n y cefndir, a nodweddion cysylltiedig.
+ Tynnu\'r proffil gwaithData cefndir
@@ -3220,108 +4023,168 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Mae cysoni YMLAEN
+ Mae cysoni I FFWRDD
+ Gwall cysoni
+ Cysonwyd diwethaf %1$s
+ Yn cysoni nawr\u2026Cadw fy ngosodiadau wrth gefn
+ Cysoni nawr
+ Diddymu cysoniTara nawr i gysoni \n%1$s
+ Gmail
+ CalendrCysylltiadauCroeso i gysoni Google!
\nMae dull Google o gysoni data yn dy ganiatáu di i gael mynediad at dy gysylltiadau, apwyntiadau a mwy o ble bynnag wyt ti.
+ Gosodiadau cysoni\'r ap
+ Data a chysoni
+ Newid cyfrinairGosodiadau cyfrif
+ Tynnu\'r cyfrif
+ Ychwanegu cyfrif
+ Gorffen
+ Tynnu\'r cyfrif?
+ Bydd tynnu\'r cyfrif hwn yn dileu ei holl negeseuon, cysylltiadau, a data arall oddi ar y llechen!
+ Bydd tynnu\'r cyfrif hwn yn dileu ei holl negeseuon, cysylltiadau, a data arall oddi ar y ffôn!
+ %s
+ Mae cysoni ar gyfer yr eitem hon wedi\'i analluogi. I newid y gosodiad, tro data cefndirol a chysoni awtomatig ymlaen am gyfnod dros dro.
+ 4GCyfeiriad MAC 4G
+ I ddechrau Android, rho dy gyfrinair
+ I ddechrau Android, rho dy PIN
+ I ddechrau Android, llunia dy batrwm
+ Patrwm Anghywir
+ Cyfrinair Anghywir
+ PIN Anghywir
+ Yn gwirio\u2026Yn dechrau Android\u2026
+ Dileu
+ dewiswyd %1$d allan o %2$d
+ %1$s allan o %2$s
+ Dewis y cyfan
+ Defnydd data
+ Defnydd data apiau
+ Defnydd ap
+ GWYBODAETH AP
+ Data symudol
+ Cylchred defnydd data
+ Defnydd ap
+ Data wrth grwydroCaniatáu data cefndir
+ Cuddio Wi\u2011Fi
+ Cuddio defnydd ether-rwydCyfyngiadau rhwydwaith
+ Rhwydweithiau symudol
+ Cysoni data gwaith yn awtomatig
+ Diwrnod o\'r mis i ailosod y cylchred defnydd data:Cefndir
+ Troi data symudol i ffwrdd?
+ Gosod terfyn data symudol
+ Gosod terfyn data 4G
+ Gosod terfyn data 2G-3G
+ Gosod terfyn data Wi\u2011Fi
+ Wi\u2011Fi
+ Ether-rwyd
+ Symudol
+ 4G
+ 2G-3G
+ SymudolDim
+ Data symudol
+ Data 2G-3G
+ Data 4G
+ Blaendir:Cefndir:
@@ -3329,45 +4192,65 @@ Defnyddio\'r gwirydd sillafu hwn?
Data cefndir
+ Galluogi defnydd data symudol yn y cefndirCyfyngu data cefndir?
+ Gall y nodwedd hon achosi rhai apiau sy\'n dibynnu ar ddata cefndirol i beidio â gweithio tra bod dim ond rhwydweithiau symudol ar gael.\n\nMae rhagor o wybodaeth am reolaeth defnydd data priodol yn y gosodiadau o fewn yr ap.
+ Troi awto-cysoni data ymlaen?
+ Bydd hyn yn arbed defnydd data a batri, ond bydd yn rhaid cysoni pob cyfrif dy hun i gael y wybodaeth ddiweddaraf. A ni fyddi\'n derbyn hysbysiadau pan fydd diweddariadau ar gael.
+ Dyddiad ailosod y cylchred defnydd
+ Dyddiad pob mis:
+ Gosod rhybudd defnydd data
+ Gosod terfyn defnydd data
+ Yn gosod terfyn defnydd data
+ Bydd dy lechen yn diffodd defnydd data symudol pan fydd wedi cyrraedd y terfyn wyt ti\'n ei osod.\n\nWrth bod defnydd data yn cael ei fesur gan dy lechen, ac mae\'n bosib bydd dy ddarparwr gwasanaeth symudol yn cyfrif yn wahanol, gall fod yn syniad da gosod terfyn ceidwadol.
+ Bydd dy ffôn yn diffodd defnydd data symudol pan fydd wedi cyrraedd y terfyn wyt ti\'n ei osod.\n\nWrth bod defnydd data yn cael ei fesur gan dy lechen, ac mae\'n bosib bydd dy ddarparwr gwasanaeth symudol yn cyfrif yn wahanol, gall fod yn syniad da gosod terfyn ceidwadol.Cyfyngu data cefndir?
+ Os wyt yn cyfyngu data cefndir symudol, ni fydd rhai apiau a gwasanaethau yn gweithio oni bai bod gan y ddyfais cysylltiad Wi\u2011Fi.
+ Os wyt yn cyfyngu data cefndir symudol, ni fydd rhai apiau a gwasanaethau yn gweithio oni bai bod gan y ddyfais cysylltiad Wi\u2011Fi.\n\nMae\'r gosodiad hwn yn effeithio ar holl ddefnyddwyr y llechen.
+ Os wyt yn cyfyngu data cefndir symudol, ni fydd rhai apiau a gwasanaethau yn gweithio oni bai bod gan y ddyfais cysylltiad Wi\u2011Fi.\n\nMae\'r gosodiad hwn yn effeithio ar holl ddefnyddwyr y ffôn hwn.Rhybudd: ^1^2\nCyfyngiad: ^1^2\n
+ Apiau wedi eu tynnu
+ Apiau a defnyddwyr wedi eu tynnu
+ %2$s: tua %1$s wedi\'i defnyddio, yn ôl mesur dy lechen. Gall fod cyfrif defnydd data dy ddarparwr gwasanaeth symudol fod yn wahanol.
+ %2$s: tua %1$s wedi\'i defnyddio, yn ôl mesur dy ffôn. Gall fod cyfrif defnydd data dy ddarparwr gwasanaeth symudol fod yn wahanol.Cyfyngiadau rhwydwaith
+ Mae rhwydweithiau sy\'n cael eu mesur yn cael eu trin yn yr un modd a rhwydweithiau symudol pan mae data cefndirol wedi ei gyfyngu. Gall apiau rhoi rhybudd cyn defnyddio\'r rhwydweithiau hyn i lawrlwytho llawer o ddata.
+ Rhwydweithiau symudolRhwydweithiau Wi-Fi wedi\'u mesur
@@ -3377,6 +4260,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Galwad brysEnw
@@ -3395,11 +4279,17 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Enw defnyddiwr
+ Cyfrinair
+ Cadw gwybodaeth y cyfrif
+ (heb ei ddefnyddio)
+ (peidio â gwirio\'r gweinydd)
+ (derbyniwyd gan y gweinydd)Cadw
+ CysylltuDisodli
+ Anghofio
+ Datgysylltu\'r VPN hwn?
+ Datgysylltu
+ Fersiwn %sAnghofio\'r VPN
@@ -3441,9 +4336,13 @@ Defnyddio\'r gwirydd sillafu hwn?
Dyw %1$s methu â chysylltu
+ VPN
+ Ychwanegu proffil VPN
+ Golygu proffil
+ Dileu\'r proffil
@@ -3465,11 +4364,17 @@ Defnyddio\'r gwirydd sillafu hwn?
Dim
+ Mae tystysgrif ar goll. Ceisia olygu\'r proffil.
+ System
+ Defnyddiwr
+ Analluogi
+ Galluogi
+ TynnuYmddiried
@@ -3501,10 +4406,13 @@ Defnyddio\'r gwirydd sillafu hwn?
"system_update_settings_list_item_title" in this project. [CHAR LIMIT=25] -->
+ Analluogwyd
+ Yn gorfodi
+ IawnYmddiried yn neu dynnu tystysgrifau
@@ -3544,7 +4452,9 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Defnyddwyr
+ Defnyddwyr a phroffiliau
@@ -3559,6 +4469,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Gweinyddwr
+ Ti (%s)Llysenw
@@ -3582,34 +4493,59 @@ Defnyddio\'r gwirydd sillafu hwn?
Dim ond perchennog y ffôn gall rheoli defnyddwyr.
+ Ni all proffiliau cyfyngedig ychwanegu cyfrifon
+ Dileu %1$s o\'r ddyfais hon.Gosodiadau sgrin cloi
+ Ychwanegu defnyddwyr o\'r sgrin cloi
+ Defnyddiwr newydd
+ Proffil newydd
+ Dileu dy hun?
+ Tynnu\'r defnyddiwr hwn?
+ Tynnu\'r proffil hwn?
+ Tynnu\'r proffil gwaith?
+ Mi fyddi\'n colli dy holl ddata a lle ar y llechen hon. Nid yw\'n bosib dadwneud y weithred hon.
+ Mi fyddi\'n colli dy holl ddata a lle ar y ffôn hwn. Nid yw\'n bosib dadwneud y weithred hon.
+ Caiff yr holl apiau a data eu dileu.
+ Caiff pob ap a holl ddata\'r proffil hwn ei dileu os wyt ti\'n parhau.
+ Caiff yr holl apiau a data eu dileu.
+ Yn ychwanegu defnyddiwr newydd\u2026
+ Dileu\'r defnyddiwr
+ Dileu
+ Gwestai
+ Tynnu gwestai
+ Tynnu\'r gwestai?
+ Caiff holl apiau a data\'r sesiwn hon eu dileu.
+ Tynnu
+ Troi galwadau ffôn ymlaen
+ Tynnu defnyddiwr
+ Troi galwadau ffôn ymlaen?
@@ -3626,12 +4562,14 @@ Defnyddio\'r gwirydd sillafu hwn?
Newid iaith
+ Sut mae\'n gweithioAp talu arferolHeb ei osod
+ %1$s - %2$s
@@ -3641,6 +4579,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Sefydla ap talu ac yna cei dal dy ffôn wrth unrhyw derfynell gyda\'r symbol talu awyr.
+ Deall yn iawnMwy...
+ Cyfyngiadau rhwydwaith
+ Newid PINDangos hysbysiadau
@@ -3697,6 +4638,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Cyfrif ar gyfer cynnwys
+ Bygythiadau eithafol
@@ -3705,11 +4647,13 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Galluogi Rheolwr GalwadauCaniatáu i\'r gwasanaeth hwn reoli sut mae dy alwadau yn cael eu gwneud.Rheolwr Galwadau
+ %1$s
@@ -3731,11 +4675,14 @@ Defnyddio\'r gwirydd sillafu hwn?
Caniatáu addasu gosodiadau Wi\u2011Fi a Symudol
+ Bluetooth
+ Caniatáu cyfnewid data pan mae\'r llechen yn cyffwrdd â dyfais arall
+ Caniatáu cyfnewid data pan mae\'r ffôn yn cyffwrdd â dyfais arallLleoliad
@@ -3744,58 +4691,76 @@ Defnyddio\'r gwirydd sillafu hwn?
Nesaf
+ Gorffen
+ Tynnu llunDewis llun o\'r oriel
+ Cardiau SIM
+ Cardiau SIM
+ %1$s - %2$sTara i osod gweithgareddau
+ Dyw data symudol ddim ar gael.Tara i ddewis SIM data
+ Defnyddio hwn bob tro ar gyfer galwadau
+ Yn newid SIM data. Gall hyn gymryd munud...
+ SIM %1$dEnw\'r SIM
+ Darparwr gwasanaeth
+ Rhif
+ Oren
+ Porffor
+ Dim cerdyn SIM wedi\'i osodStatws SIM
+ Gosodiadau galwadau eraillBydd analluogi Darlledu Enw\'r Rhwydwaith yn rhwystro cysylltu\'n awtomatig i rwydweithiau cudd.
+ %1$d dBm %2$d asuTara i\'w osod
+ Gofyn bob tro
+ GosodiadauDangos %d eitemau wedi eu cuddio
@@ -3808,12 +4773,16 @@ Defnyddio\'r gwirydd sillafu hwn?
+ defnydd data
+ llecynDyfeisiadau wedi cysylltu
+ Bluetooth, Bwrw
+ Apiau a hysbysiadau
+ Gosodiadau
+ Gosodiadau chwilio
+ Gosodiadau chwilioWiFi, wi-fi, cysylltiad rhwydwaithneges destun, testun, neges, negeseuon, negeseua, negesu
+ symudol, darparwr gwasanaeth, di-wifr, data, 4g, 3g, 2g, lte, signalWiFi, wi-fi, galwad, galwsgrin, sgrin cyffwrddpylu sgrin, pylu\'r sgrin, sgrin cyffwrdd, batri
@@ -3845,10 +4818,12 @@ Defnyddio\'r gwirydd sillafu hwn?
ailosod, ail-osod, ffatridileu, dadosod, ailosod, ail-osod, clirio, tynnudim tarfu, tarfu, ymyrryd, torriad
+ RAMgerllaw, lleol, lleoliad, hanes, adrodd
+ cyfrifrhwystr, rhwystro, rhwystrwydcywiro testun, cywiriad sillafu, cywiro, sain, dirgrynu, awto, iaith, ystum, awgrym, awgrymiad, awgrymu, thema, gair, math, emoji, gwenoglun, rhyngwladol
- ailsod, dewisiadau, rhagosod, rhagosodedig
+ ailosod, dewisiadau, rhagosod, rhagosodedigargyfwng, rhew, ap, rhagosodedigffôn, deialu, deialydd, rhagosodedigap, lawrlwytho, llwytho i lawr, apiau, system
@@ -3857,13 +4832,17 @@ Defnyddio\'r gwirydd sillafu hwn?
llusgo i ddatgloi, cyfrinair, patrwm, PINher gwaith, gwaith, proffilproffil gwaithh, proffil, rheoli, uno, gwaitth, rheolaeth proffil
+ ystumiau
+ cadw copi wrth gefn, copi wrth gefnystum
+ Ysgrifennu
+ Llwyddiant!
@@ -3882,9 +4861,11 @@ Defnyddio\'r gwirydd sillafu hwn?
Uchder sain canu ar 80%
+ Uchder sain cyfryngauUchder sain larymau
+ Uchder sain caniad ffônUchder sain hysbysiadau
@@ -3897,10 +4878,12 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Synau eraillTonau pad deialu
+ Seiniau gwefruSeiniau cyffwrdd
@@ -3914,11 +4897,13 @@ Defnyddio\'r gwirydd sillafu hwn?
Rhybudd
+ DirgrynuSynau wrth droi ymlaen
+ Dewisiadau Dim Tarfu
@@ -3941,6 +4926,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Disodli
+ Caiff seiniau dy broffil personol eu defnyddio ar gyfer dy broffil gwaithCaiff y ffeil ei gopïo i\'r ffolder %s
@@ -3955,6 +4941,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Hysbysiadau gwaith
+ Golau ysbeidiolAr y sgrin cloiHysbysiadau
+ Hysbysiadau apiauPwysigrwydd
@@ -4001,6 +4989,7 @@ Defnyddio\'r gwirydd sillafu hwn?
summary on the channel page-->
+ Dim sain
+ IselCanolig
+ UchelCaniatáu torri ar draws
@@ -4058,21 +5049,36 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Caniatáu llun-o-fewn-llun
+ Caniatáu i\'r ap hwn greu ffenestr llun-o-fewn-llun tra bod yr ap ar agor neu ar ôl i ti ei adael (i barhau i wylio fideo, er enghraifft). Bydd y ffenestr hon yn ymddangos dros ben yr apiau eraill sy\'n cael eu defnyddio.Yn llwytho apiau...
+ Mae Android yn rhwystro hysbysiadau\'r ap hwn rhag ymddangos ar y ddyfais hon
+ Mae Android yn rhwystro\'r categori hwn o hysbysiadau rhag ymddangos ar y ddyfais hon
+ CategorïauArall
+ Gosodiadau ychwanegol yn yr ap
+ Wedi\'i droi ymlaen ar gyfer pob ap
+
+ %d categori wedi\'u dileu
+ %d categori wedi\'i ddileu
+ %d gategori wedi\'u dileu
+ %d categori wedi\'u dileu
+ %d chategori wedi\'u dileu
+ %d categori wedi\'u dileu
+ Ymlaen
@@ -4095,13 +5101,17 @@ Defnyddio\'r gwirydd sillafu hwn?
+ IawnPwysigrwydd
+ Golau ysbeidiol
+ DirgrynuSain
+ DileuAilenwi
@@ -4109,33 +5119,48 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Ychwanegu rhagor
+ Dileu rheolDewis math o reol
+ Dileu\'r rheol \u201c%1$s\u201d?
+ Dileu
+ Math o reol
+ Anhysybys
+ Ffurfweddu rheol
+ Rheol amser
+ Rheol digwyddiad
+ unrhyw galendr
+ Unrhyw galendr
+ Ie, Efallai, neu Heb ateb
+ Ie neu Efallai
+ IeYmlaen / %1$s%1$s\n%2$s
+ DiwrnodauDim
@@ -4145,34 +5170,51 @@ Defnyddio\'r gwirydd sillafu hwn?
Stopio am yr amser diwedd neu\'r larwm nesaf, pa bynnag un sy\'n dod gyntaf.
+ ,\u0020
+ %1$s - %2$s
+ %1$s i %2$s
+ Galwadau
+ NegeseuonPob neges
+ Oddi wrth unrhyw un
+ Oddi wrth cysylltiadau yn unig
+ Oddi wrth cysylltiadau serennog yn unigDim
+ Larymau
+ Negeseuon atgoffa
+ DigwyddiadauPob galwr
+ Troi ymlaen yn atomatig
+ Byth
+ Pob nos
+ Amser dechrau
+ Amser gorffen
+ %s y diwrnod canlynol
@@ -4211,18 +5253,26 @@ Defnyddio\'r gwirydd sillafu hwn?
Pan mae\'r gosodiad hwn wedi ei droi ymlaen, mae\'n bosib defnyddio pinio sgrin i gadw\'r sgrin bresennol mewn golwg nes dy fod yn ei datbinio.\n\nI ddefnyddio pinio sginiau:\n\n1. Sicrha bod pinio sgrin wedi ei droi ymlaen.\n\n2. Agora\'r sgrin wyt am ei phinio.\n\n3. Tara \'Trosolwg\'.\n\n4. Llithra i fyny ac yna taro\'r eicon pin.
+ Gofyn am batrwm datgloi cyn dadbinio
+ Gofyn am PIN cyn dadbinio
+ Gofyn am gyfrinair cyn dadbinio
+ Mae\'r proffil hwn yn cael ei reoli gan:Rheolir gan %s
+ (Arbrofol)
+ Mae\'n bosib diogelu\'r ddyfais ymhellach gan fynnu bod angen PIN er mwyn cychwyn y system. Ni fydd y ddyfais yn medru derbyn galwadau, negeseuon na hysbysiadau, gan gynnwys larymau, nes ei bod wedi ei chychwyn.\n\nMae hyn yn helpu diogelu data yn yr achos bod y ddyfais yn cael ei cholli neu ei dwyn. Wyt ti am ddefnyddio PIN i fedru cychwyn dy ddyfais?
+ Mae\'n bosib diogelu\'r ddyfais ymhellach gan fynnu bod angen patrwm er mwyn cychwyn y system. Ni fydd y ddyfais yn medru derbyn galwadau, negeseuon na hysbysiadau, gan gynnwys larymau, nes ei bod wedi ei chychwyn.\n\nMae hyn yn helpu diogelu data yn yr achos bod y ddyfais yn cael ei cholli neu ei dwyn. Wyt ti am ddefnyddio patrwm i fedru cychwyn dy ddyfais?
+ Mae\'n bosib diogelu\'r ddyfais ymhellach gan fynnu bod angen cyfrinair er mwyn cychwyn y system. Ni fydd y ddyfais yn medru derbyn galwadau, negeseuon na hysbysiadau, gan gynnwys larymau, nes ei bod wedi ei chychwyn.\n\nMae hyn yn helpu diogelu data yn yr achos bod y ddyfais yn cael ei cholli neu ei dwyn. Wyt ti am ddefnyddio cyfrinair i fedru cychwyn dy ddyfais? Yn ogystal â defnyddio ôl dy fys i ddatgloi\'r ddyfais, mae\'n bosib diogelu\'r ddyfais ymhellach gan fynnu bod angen PIN er mwyn dechrau\'r system. Nes bod y system yn rhedeg, ni all y ddyfais derbyn galwadau, negeseuon na hysbysiadau, gan gynnwys larymau.\n\nMae hyn yn helpu diogelu data yn yr achos bod y ddyfais yn cael ei cholli neu ei dwyn. Wyt ti am osod PIN er mwyn medru dechrau dy ddyfais?
@@ -4231,6 +5281,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Yn ogystal â defnyddio ôl dy fys i ddatgloi\'r ddyfais, mae\'n bosib diogelu\'r ddyfais ymhellach gan fynnu bod angen cyfrinair er mwyn dechrau\'r system. Nes bod y system yn rhedeg, ni all y ddyfais derbyn galwadau, negeseuon na hysbysiadau, gan gynnwys larymau.\n\nMae hyn yn helpu diogelu data yn yr achos bod y ddyfais yn cael ei cholli neu ei dwyn. Wyt ti am osod cyfrinair er mwyn medru dechrau dy ddyfais?
+ Na
@@ -4242,23 +5293,32 @@ Defnyddio\'r gwirydd sillafu hwn?
Nodyn: Ar ôl ailddechrau, ni all yr ap hwn ddechrau nes bod dy ffôn wedi ei ddatgloi.Gwybodaeth IMEI
+ (Slot%1$d)Agor dolenni
+ Agor heb ofyn
+ Storfa allanol
+ Defnydd data\'r ap
+ Newid
+ Newid storfa
+ Hysbysiadau apiauYmlaen
+ Popeth wedi\'i troi ffwrdd
+ %1$d o %2$d categori wedi\'u troi ffwrddWedi\'i distewi
@@ -4271,44 +5331,54 @@ Defnyddio\'r gwirydd sillafu hwn?
Lefel %d
+ %1$s \u2022 %2$s
+ Pob apApiau wedi eu gosod
+ GwaithApiau: Pob unApiau: Wedi\'u troi ffwrdd
+ Categorïau: Pwysigrwydd brys
+ Categorïau: Pwysigrwydd iselCategorïau: Wedi\'u troi ffwrdd
+ Categorïau: Yn anwybyddu Dim TarfuUwch
+ Caniatâd yr ap
+ Apiau sy\'n defnyddio %1$sAgor dolenni
+ Agor %sAgor %s ac URLs eraill
+ Gofyn bob troDim yn ei adnabod
@@ -4321,26 +5391,36 @@ Defnyddio\'r gwirydd sillafu hwn?
Gosod %s fel dy gynorthwyydd?
+ Bydd y cynorthwyydd yn medru darllen gwybodaeth am yr apiau mewn defnydd ar dy system, gan gynnwys gwybodaeth sy\'n weledol ar dy sgrin neu ar gael o fewn yr apiau.
+ Cytuno
+ AnghytunoAp Porwr
+ Dim porwr rhagosodedig
+ Ap ffôn
+ (Rhagosodiad)(System)(Rhagosodiad y system)
+ Storfa apiau
+ Dewisiadau defnydd apiauMae mynediad defnydd yn caniatáu i ap ddilyn pa apiau eraill wyt yn eu defnyddio a pha mor aml, yn ogystal â dy ddarparwr gwasanaeth, iaith y system a manylion eraill.
+ Cof
+ Manylion cof
@@ -4350,6 +5430,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+ %1$s (%2$d)Rhybuddion defnydd
@@ -4364,15 +5445,21 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Gadael i\'r ap redeg yn y cefndir o hyd?
+ Gall caniatáu %1$s i redeg yn y cefndir o hyd leihau oes batri.
+ \n\nGellir newid hyn yn hwyrach yn Gosodiadau > Apiau a hysbysiadau.
+ %1$s ers gwefru\'n llawn tro diwethaf
+ Dim defnydd batri ers gwefru llawn ddiwethafGosodiadau apiau
+ %1$d yn rhagorRhannu adroddiad am wall?
@@ -4414,6 +5501,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Trosglwyddo lluniau neu ffeiliau (dull PTP) os na chefnogir MTP
@@ -4427,9 +5515,11 @@ Defnyddio\'r gwirydd sillafu hwn?
usb_use_file_transfer, use_use_photo_transfer, and usb_use_MIDI -->
Defnyddio USB i
+ USB
+ Trosglwyddo ffeiliau
@@ -4449,17 +5539,23 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Defnydd cof
+ Defnydd ap
+ Perfformiad
+ Cyfartaledd defnyddiwyd (%)
+ Ar gael
+ Cof a ddefnyddir gan apiau
@@ -4478,21 +5574,27 @@ Defnyddio\'r gwirydd sillafu hwn?
Dim
+ Dyw diffodd mynediad data ar gyfer yr ap hwn ddim yn rhwystro dy weinyddwr rhag tracio defnydd data ar gyfer apiau yn dy broffil gwaith%1$d o %2$d wedi\'u defnyddio
+ Apiau
+ Caniatáu dangos dros ben apiau eraill
+ Caniatáu i\'r ap hwn ymddangos dros ben apiau eraill sy\u2019n cael eu defnyddio. Mae\'n bosib y gellir ymyrryd yn dy ddefnydd o apiau eraill neu newid sut maen nhw\'n ymddangos neu\'n ymddwyn.
+ %1$d o %2$d ap yn cael dangos dros ben apiau eraill
+ Apiau gyda chaniatâdCaniateir
@@ -4503,7 +5605,9 @@ Defnyddio\'r gwirydd sillafu hwn?
Addasu gosodiadau\'r system
+ %1$d o %2$d ap yn cael addasu gosodiadau\'r system
+ Yn medru gosod apiau eraill
@@ -4515,7 +5619,9 @@ Defnyddio\'r gwirydd sillafu hwn?
Mae\'n caniatáu i ap addasu gosodiadau\'r system.
+ Na
+ Caniatáu o\'r ffynhonnell hon
@@ -4567,6 +5673,7 @@ Defnyddio\'r gwirydd sillafu hwn?
24 ap wedi eu gosod
+ %1$s wedi\'i defnyddio - %2$s ar gael
@@ -4589,6 +5696,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Gweithred heb ei ganiatáu
+ Methu â newid uchder sainNi chaniateir SMS
@@ -4616,6 +5724,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Mae\'r modd awyren ymlaen
+ Mae Wi-Fi, Bluetooth a rhwydwaith symudol wedi eu diffodd. Nid yw\'n bosib gwneud galwadau na chysylltu â\'r rhyngrwyd.Mae Dim Tarfu ymlaen (%1$s)
@@ -4623,6 +5732,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Mae perfformiad yn salach. Dyw gwasanaethau lleoliad a data cefndir ddim ar waith.
+ Mae data symudol i ffwrddDyw\'r rhyngrwyd ond ar gael trwy Wi-Fi.
@@ -4645,6 +5755,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+%1$d
+ +%1$d arall
@@ -4656,6 +5767,7 @@ Defnyddio\'r gwirydd sillafu hwn?
+%1$d awgrym
+ Tynnu
@@ -4666,6 +5778,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Defnydd
+ Defnydd data symudolDefnydd data dros Wi-Fi
@@ -4673,9 +5786,13 @@ Defnyddio\'r gwirydd sillafu hwn?
Wi-Fi
+ Ether-rwyd
+ ^1 data symudol
+ ^1 data Wi-Fi
+ ^1 data ether-rwydRhybydd data %1$s
@@ -4698,11 +5815,21 @@ Defnyddio\'r gwirydd sillafu hwn?
Terfyn data
+ %1$s wedi\'i defnyddio %2$s
+ FfurfwedduApiau eraill yn y defnydd
+
+ %1$d apiau yn cael defnyddio data yn ddiderfyn tra bod Arbedwr Data ymlaen.
+ %1$d ap yn cael defnyddio data yn ddiderfyn tra bod Arbedwr Data ymlaen.
+ %1$d ap yn cael defnyddio data yn ddiderfyn tra bod Arbedwr Data ymlaen.
+ %1$d ap yn cael defnyddio data yn ddiderfyn tra bod Arbedwr Data ymlaen.
+ %1$d ap yn cael defnyddio data yn ddiderfyn tra bod Arbedwr Data ymlaen.
+ %1$d ap yn cael defnyddio data yn ddiderfyn tra bod Arbedwr Data ymlaen.
+ Arbedwr Data
@@ -4816,6 +5943,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Dangos neu guddio cynnwys hysbysiadau
+ Y cwbl
@@ -4856,6 +5984,8 @@ Defnyddio\'r gwirydd sillafu hwn?
%1$s - %2$s
+ %1$s (%2$s)
+ Yn teithio tramor?
@@ -4881,6 +6011,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Peidio â dangos eto
+ Ychwanegu cyfrifGosodiadau proffil gwaith
@@ -4928,6 +6059,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Clustffonau
+ BluetoothRheoli storfa
@@ -4949,6 +6081,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Ystumiau cyflym i reoli dy ddyfais
+ Neidio i\'r CameraI agor y camera\'n gyflym, gwasga\'r botwm pŵer dwywaith. Mae\'n gweithio pa bynnag beth sydd ar y sgrin.
@@ -5009,6 +6142,7 @@ Defnyddio\'r gwirydd sillafu hwn?
Cyfrifon ar gyfer %1$s
+ FfurfwedduCysoni data yn awtomatig
@@ -5030,23 +6164,35 @@ Defnyddio\'r gwirydd sillafu hwn?
+ Dy fynediad i\'r ddyfais hon
+ Yr amser a data y\'i defnyddir ar bob apDim
+ Apiau wedi\'u gosod
+ Caniatâd cameaApiau rhagosodedig
+
+ %d apiau
+ %d ap
+ %d ap
+ %d ap
+ %d ap
+ %d ap
+
@@ -5064,12 +6210,29 @@ Defnyddio\'r gwirydd sillafu hwn?
+
+ %d ymdrechion
+ %d ymdrech
+ %d ymdrech
+ %d ymdrech
+ %d ymdrech
+ %d ymdrech
+
+ Dysgu mwy
+
+ Apiau camera
+ Ap camera
+ Apiau camera
+ Apiau camera
+ Apiau camera
+ Apiau camera
+ Ap calendr
@@ -5078,17 +6241,31 @@ Defnyddio\'r gwirydd sillafu hwn?
Ap map
+
+ Apiau ffôn
+ Ap ffôn
+ Apiau ffôn
+ Apiau ffôn
+ Apiau ffôn
+ Apiau ffôn
+
+ %1$s, %2$s
+ %1$s, %2$s, %3$s
+ Apiau eraill
+ Ffeiliau
+ ^1^2Wedi defnyddio o %1$s
+ defnyddiwyd
@@ -5097,11 +6274,20 @@ Defnyddio\'r gwirydd sillafu hwn?
Ffeiliau sain
+ (wedi\'i ddadosod ar gyfer y defnyddiwr %s)
+ (wedi\'i analluogi ar gyfer y defnyddiwr %s)
+ Gwasanaeth awtolenwi
+ awto, llenwi, cwblhau, awtolenwi, awtogwblhau
+ Sicrha dy fod yn ymddiried yn yr ap hwn
+
+
+ Mae %1$s yn defnyddio beth sydd ar dy sgrin i benderfynu pa bethau gellir eu awtolenwi.
+ ]]>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 305f4e76c5920c724bef31fa5632bf3eaaa6e35d..aab68f6d994f948a4506e6dc25810718558f8dcc 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -3568,7 +3568,7 @@
"Schnelle Gesten zum Steuern deines Tablets""Schnelle Gesten zum Steuern deines Geräts""Zur Kamera wechseln"
- "Ein-/Aus-Taste zweimal drücken, um Kamera direkt zu starten. Funktioniert bei jedem Display."
+ "Ein-/Aus-Taste zweimal drücken, um Kamera direkt zu starten. Funktioniert unabhängig davon, welche App gerade geöffnet ist.""Kamera schnell öffnen""Ein-/Aus-Taste zweimal drücken, um die Kamera zu öffnen""Kamera wechseln"
diff --git a/res/values-pt-rPT/cm_strings.xml b/res/values-pt-rPT/cm_strings.xml
index c14e5f279f9a6538d5110da2789d2bca05f277ee..16d271b0d7d8dbeb79e112da3da3f8295be67e75 100644
--- a/res/values-pt-rPT/cm_strings.xml
+++ b/res/values-pt-rPT/cm_strings.xml
@@ -118,7 +118,7 @@
O cartão SIM será desativado. Quer continuar?AtençãoEste cartão SIM será desativado e o cartão SIM %1$s será usado para os serviços de dados. Tem a certeza que deseja continuar?
- Não é possível executar a operação enquanto o modo de avião estiver ativado.
+ Não é possível executar a operação enquanto o modo de voo estiver ativado.Não é possível executar a operação enquanto estiver numa chamada.Não é possível desativar todos os cartões SIMA ativar\u2026
diff --git a/res/values-sc-rIT/cm_strings.xml b/res/values-sc-rIT/cm_strings.xml
index 32c55fb5afe581b75e774be140d587ed8f4f8245..60b57e7790c78b2c9ca9924fb18db2f1aa5cdba3 100644
--- a/res/values-sc-rIT/cm_strings.xml
+++ b/res/values-sc-rIT/cm_strings.xml
@@ -23,6 +23,7 @@
+ RAM totale
diff --git a/tests/Android.mk b/tests/Android.mk
deleted file mode 100644
index fd297e35397bbd1bdff98f3f9a84285b3587d8e5..0000000000000000000000000000000000000000
--- a/tests/Android.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# Include all makefiles in subdirectories
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/anomaly-tester/Android.mk b/tests/anomaly-tester/Android.mk
deleted file mode 100644
index ade37db02849340ed06f316b9a32d82cef1f1b86..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-LOCAL_CERTIFICATE := platform
-
-LOCAL_JAVA_LIBRARIES := android.test.runner bouncycastle
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
- android-support-test \
- mockito-target \
- ub-uiautomator \
- truth-prebuilt \
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_PACKAGE_NAME := AnomalyTester
-
-LOCAL_INSTRUMENTATION_FOR := Settings
-
-LOCAL_USE_AAPT2 := true
-
-include $(BUILD_PACKAGE)
\ No newline at end of file
diff --git a/tests/anomaly-tester/AndroidManifest.xml b/tests/anomaly-tester/AndroidManifest.xml
deleted file mode 100644
index 7893b866bfa797c6f9f5d3f30468ef780b3431cc..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/AndroidManifest.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/anomaly-tester/res/layout/activity_main.xml b/tests/anomaly-tester/res/layout/activity_main.xml
deleted file mode 100644
index 0561cff9fc355bbb03910d7c7e258eeb28c6c5c5..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/layout/activity_main.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/anomaly-tester/res/layout/bluetooth_anomaly.xml b/tests/anomaly-tester/res/layout/bluetooth_anomaly.xml
deleted file mode 100644
index 87e61b0d786eaa1a5abcf9813ff87e2cd1ac90c9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/layout/bluetooth_anomaly.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/anomaly-tester/res/layout/wakelock_anomaly.xml b/tests/anomaly-tester/res/layout/wakelock_anomaly.xml
deleted file mode 100644
index 08cb7958419f86ccece61531b8b22f980ff5aaf6..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/layout/wakelock_anomaly.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/anomaly-tester/res/values-af/strings.xml b/tests/anomaly-tester/res/values-af/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-af/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-am/strings.xml b/tests/anomaly-tester/res/values-am/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-am/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ar/strings.xml b/tests/anomaly-tester/res/values-ar/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ar/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-az/strings.xml b/tests/anomaly-tester/res/values-az/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-az/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-b+sr+Latn/strings.xml b/tests/anomaly-tester/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-be/strings.xml b/tests/anomaly-tester/res/values-be/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-be/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-bg/strings.xml b/tests/anomaly-tester/res/values-bg/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-bg/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-bn/strings.xml b/tests/anomaly-tester/res/values-bn/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-bn/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-bs/strings.xml b/tests/anomaly-tester/res/values-bs/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-bs/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ca/strings.xml b/tests/anomaly-tester/res/values-ca/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ca/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-cs/strings.xml b/tests/anomaly-tester/res/values-cs/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-cs/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-da/strings.xml b/tests/anomaly-tester/res/values-da/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-da/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-de/strings.xml b/tests/anomaly-tester/res/values-de/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-de/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-el/strings.xml b/tests/anomaly-tester/res/values-el/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-el/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-en-rAU/strings.xml b/tests/anomaly-tester/res/values-en-rAU/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-en-rCA/strings.xml b/tests/anomaly-tester/res/values-en-rCA/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-en-rCA/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-en-rGB/strings.xml b/tests/anomaly-tester/res/values-en-rGB/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-en-rIN/strings.xml b/tests/anomaly-tester/res/values-en-rIN/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-en-rXC/strings.xml b/tests/anomaly-tester/res/values-en-rXC/strings.xml
deleted file mode 100644
index 8fce2b841b02b0417e713edbe99b8cb5c63e935b..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-en-rXC/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-es-rUS/strings.xml b/tests/anomaly-tester/res/values-es-rUS/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-es/strings.xml b/tests/anomaly-tester/res/values-es/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-es/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-et/strings.xml b/tests/anomaly-tester/res/values-et/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-et/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-eu/strings.xml b/tests/anomaly-tester/res/values-eu/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-eu/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-fa/strings.xml b/tests/anomaly-tester/res/values-fa/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-fa/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-fi/strings.xml b/tests/anomaly-tester/res/values-fi/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-fi/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-fr-rCA/strings.xml b/tests/anomaly-tester/res/values-fr-rCA/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-fr/strings.xml b/tests/anomaly-tester/res/values-fr/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-fr/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-gl/strings.xml b/tests/anomaly-tester/res/values-gl/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-gl/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-gu/strings.xml b/tests/anomaly-tester/res/values-gu/strings.xml
deleted file mode 100644
index 8c09d6cbea04b85991e420a587abc725dfc45a76..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-gu/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "અસંગતિ પરીક્ષક"
-
diff --git a/tests/anomaly-tester/res/values-hi/strings.xml b/tests/anomaly-tester/res/values-hi/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-hi/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-hr/strings.xml b/tests/anomaly-tester/res/values-hr/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-hr/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-hu/strings.xml b/tests/anomaly-tester/res/values-hu/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-hu/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-hy/strings.xml b/tests/anomaly-tester/res/values-hy/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-hy/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-in/strings.xml b/tests/anomaly-tester/res/values-in/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-in/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-is/strings.xml b/tests/anomaly-tester/res/values-is/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-is/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-it/strings.xml b/tests/anomaly-tester/res/values-it/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-it/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-iw/strings.xml b/tests/anomaly-tester/res/values-iw/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-iw/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ja/strings.xml b/tests/anomaly-tester/res/values-ja/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ja/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ka/strings.xml b/tests/anomaly-tester/res/values-ka/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ka/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-kk/strings.xml b/tests/anomaly-tester/res/values-kk/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-kk/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-km/strings.xml b/tests/anomaly-tester/res/values-km/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-km/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-kn/strings.xml b/tests/anomaly-tester/res/values-kn/strings.xml
deleted file mode 100644
index dace89cfd41c5ac87505b18c90e00869cdd74785..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-kn/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "ಅನೋಮಲಿಟೆಸ್ಟರ್"
-
diff --git a/tests/anomaly-tester/res/values-ko/strings.xml b/tests/anomaly-tester/res/values-ko/strings.xml
deleted file mode 100644
index d8b6c6aa169de97d80e627ec53eed074ff93bf04..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ko/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "비정상 상황 테스터"
-
diff --git a/tests/anomaly-tester/res/values-ky/strings.xml b/tests/anomaly-tester/res/values-ky/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ky/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-lo/strings.xml b/tests/anomaly-tester/res/values-lo/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-lo/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-lt/strings.xml b/tests/anomaly-tester/res/values-lt/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-lt/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-lv/strings.xml b/tests/anomaly-tester/res/values-lv/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-lv/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-mk/strings.xml b/tests/anomaly-tester/res/values-mk/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-mk/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ml/strings.xml b/tests/anomaly-tester/res/values-ml/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ml/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-mn/strings.xml b/tests/anomaly-tester/res/values-mn/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-mn/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-mr/strings.xml b/tests/anomaly-tester/res/values-mr/strings.xml
deleted file mode 100644
index 3472e9934d1c9da5e1817ed11659c6fa8ec5b77d..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-mr/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "विसंगती परीक्षक"
-
diff --git a/tests/anomaly-tester/res/values-ms/strings.xml b/tests/anomaly-tester/res/values-ms/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ms/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-my/strings.xml b/tests/anomaly-tester/res/values-my/strings.xml
deleted file mode 100644
index 3535a3f3f07beefd86f1e80c84a6d95d07b85c1e..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-my/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "Anomaly စမ်းသပ်ကိရိယာ"
-
diff --git a/tests/anomaly-tester/res/values-nb/strings.xml b/tests/anomaly-tester/res/values-nb/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-nb/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ne/strings.xml b/tests/anomaly-tester/res/values-ne/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ne/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-nl/strings.xml b/tests/anomaly-tester/res/values-nl/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-nl/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-pa/strings.xml b/tests/anomaly-tester/res/values-pa/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-pa/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-pl/strings.xml b/tests/anomaly-tester/res/values-pl/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-pl/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-pt-rBR/strings.xml b/tests/anomaly-tester/res/values-pt-rBR/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-pt-rPT/strings.xml b/tests/anomaly-tester/res/values-pt-rPT/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-pt/strings.xml b/tests/anomaly-tester/res/values-pt/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-pt/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ro/strings.xml b/tests/anomaly-tester/res/values-ro/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ro/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ru/strings.xml b/tests/anomaly-tester/res/values-ru/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ru/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-si/strings.xml b/tests/anomaly-tester/res/values-si/strings.xml
deleted file mode 100644
index de39b09515d300f70251ef554669e855fa771717..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-si/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "විෂමතා පරීක්ෂක"
-
diff --git a/tests/anomaly-tester/res/values-sk/strings.xml b/tests/anomaly-tester/res/values-sk/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-sk/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-sl/strings.xml b/tests/anomaly-tester/res/values-sl/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-sl/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-sq/strings.xml b/tests/anomaly-tester/res/values-sq/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-sq/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-sr/strings.xml b/tests/anomaly-tester/res/values-sr/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-sr/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-sv/strings.xml b/tests/anomaly-tester/res/values-sv/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-sv/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-sw/strings.xml b/tests/anomaly-tester/res/values-sw/strings.xml
deleted file mode 100644
index e8d6de8e628bead0349bb03a31265ba8f85a27bf..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-sw/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "Kipengele cha Kubaini Hitilafu"
-
diff --git a/tests/anomaly-tester/res/values-ta/strings.xml b/tests/anomaly-tester/res/values-ta/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ta/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-te/strings.xml b/tests/anomaly-tester/res/values-te/strings.xml
deleted file mode 100644
index f1758403fc18ff3a166dd89ffb421f960ee230a0..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-te/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "అనామలీ టెస్టర్"
-
diff --git a/tests/anomaly-tester/res/values-th/strings.xml b/tests/anomaly-tester/res/values-th/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-th/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-tl/strings.xml b/tests/anomaly-tester/res/values-tl/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-tl/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-tr/strings.xml b/tests/anomaly-tester/res/values-tr/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-tr/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-uk/strings.xml b/tests/anomaly-tester/res/values-uk/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-uk/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-ur/strings.xml b/tests/anomaly-tester/res/values-ur/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-ur/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-uz/strings.xml b/tests/anomaly-tester/res/values-uz/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-uz/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-vi/strings.xml b/tests/anomaly-tester/res/values-vi/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-vi/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-zh-rCN/strings.xml b/tests/anomaly-tester/res/values-zh-rCN/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-zh-rHK/strings.xml b/tests/anomaly-tester/res/values-zh-rHK/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-zh-rTW/strings.xml b/tests/anomaly-tester/res/values-zh-rTW/strings.xml
deleted file mode 100644
index cdc7ee558a9f75fffd91f35d9d8aa742d9331ea9..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values-zu/strings.xml b/tests/anomaly-tester/res/values-zu/strings.xml
deleted file mode 100644
index e28ad504d8eece809f7688059b6ebcaddf231cae..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values-zu/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- "I-AnomalyTester"
-
diff --git a/tests/anomaly-tester/res/values/strings.xml b/tests/anomaly-tester/res/values/strings.xml
deleted file mode 100644
index 99de34e62dd1e8d97777135177170f348d3f918a..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/res/values/strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- AnomalyTester
-
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/AnomalyActivity.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tester/AnomalyActivity.java
deleted file mode 100644
index e4567c2fbc31e717e24412347e59be329e159748..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/AnomalyActivity.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.anomaly.tester;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.ResultReceiver;
-import android.provider.Settings;
-import android.util.Log;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Toast;
-
-import com.android.settings.anomaly.tester.service.AnomalyService;
-import com.android.settings.anomaly.tester.utils.AnomalyActions;
-import com.android.settings.anomaly.tester.utils.AnomalyPolicyBuilder;
-
-/**
- * Main activity to control and start anomaly
- */
-public class AnomalyActivity extends Activity {
- private static final String TAG = AnomalyActivity.class.getSimpleName();
-
- public static final String KEY_TARGET_BUTTON = "target_button";
-
- private AnomalyResultReceiver mResultReceiver;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mResultReceiver = new AnomalyResultReceiver(new Handler());
- }
-
- public void startBluetoothAnomaly(View view) {
- try {
- // Enable anomaly detection and change the threshold
- final String config = new AnomalyPolicyBuilder()
- .addPolicy(AnomalyPolicyBuilder.KEY_ANOMALY_DETECTION_ENABLED, true)
- .addPolicy(AnomalyPolicyBuilder.KEY_BLUETOOTH_SCAN_DETECTION_ENABLED, true)
- .addPolicy(AnomalyPolicyBuilder.KEY_BLUETOOTH_SCAN_THRESHOLD,
- getValueFromEditText(R.id.bluetooth_threshold))
- .build();
- Settings.Global.putString(getContentResolver(),
- Settings.Global.ANOMALY_DETECTION_CONSTANTS, config);
-
- // Start the anomaly service
- Intent intent = new Intent(this, AnomalyService.class);
- intent.putExtra(AnomalyActions.KEY_ACTION, AnomalyActions.ACTION_BLE_SCAN_UNOPTIMIZED);
- intent.putExtra(AnomalyActions.KEY_DURATION_MS,
- getValueFromEditText(R.id.bluetooth_run_time));
- intent.putExtra(AnomalyActions.KEY_RESULT_RECEIVER, mResultReceiver);
- intent.putExtra(KEY_TARGET_BUTTON, view.getId());
- startService(intent);
-
- view.setEnabled(false);
- } catch (NumberFormatException e) {
- Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
- }
- }
-
- public void startWakelockAnomaly(View view) {
- try {
- // Enable anomaly detection and change the threshold
- final String config = new AnomalyPolicyBuilder()
- .addPolicy(AnomalyPolicyBuilder.KEY_ANOMALY_DETECTION_ENABLED, true)
- .addPolicy(AnomalyPolicyBuilder.KEY_WAKELOCK_DETECTION_ENABLED, true)
- .addPolicy(AnomalyPolicyBuilder.KEY_WAKELOCK_THRESHOLD,
- getValueFromEditText(R.id.wakelock_threshold))
- .build();
- Settings.Global.putString(getContentResolver(),
- Settings.Global.ANOMALY_DETECTION_CONSTANTS,
- config);
-
- // Start the anomaly service
- Intent intent = new Intent(this, AnomalyService.class);
- intent.putExtra(AnomalyActions.KEY_ACTION, AnomalyActions.ACTION_WAKE_LOCK);
- intent.putExtra(AnomalyActions.KEY_DURATION_MS,
- getValueFromEditText(R.id.wakelock_run_time));
- intent.putExtra(AnomalyActions.KEY_RESULT_RECEIVER, mResultReceiver);
- intent.putExtra(KEY_TARGET_BUTTON, view.getId());
- startService(intent);
-
- view.setEnabled(false);
- } catch (NumberFormatException e) {
- Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
- }
- }
-
- private long getValueFromEditText(final int id) throws NumberFormatException {
- final EditText editText = findViewById(id);
- if (editText != null) {
- final long value = Long.parseLong(editText.getText().toString());
- if (value > 0) {
- return value;
- }
- }
-
- throw new NumberFormatException("Number should be positive");
- }
-
- private class AnomalyResultReceiver extends ResultReceiver {
-
- public AnomalyResultReceiver(Handler handler) {
- super(handler);
- }
-
- @Override
- protected void onReceiveResult(int resultCode, Bundle resultData) {
- super.onReceiveResult(resultCode, resultData);
-
- final Button button = findViewById(resultData.getInt(KEY_TARGET_BUTTON));
- if (button != null) {
- button.setEnabled(true);
- }
-
- }
- }
-}
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/service/AnomalyService.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tester/service/AnomalyService.java
deleted file mode 100644
index b569bcecb373374a87beb1f371b2725c591ce545..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/service/AnomalyService.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.anomaly.tester.service;
-
-import android.annotation.Nullable;
-import android.app.IntentService;
-import android.content.Intent;
-import android.os.ResultReceiver;
-
-import com.android.settings.anomaly.tester.utils.AnomalyActions;
-
-/**
- * Service to run the anomaly action
- */
-public class AnomalyService extends IntentService {
- private static final String TAG = AnomalyService.class.getSimpleName();
-
- public AnomalyService() {
- super(AnomalyService.class.getSimpleName());
- }
-
- @Override
- protected void onHandleIntent(@Nullable Intent intent) {
- final String action = intent.getStringExtra(AnomalyActions.KEY_ACTION);
- final long durationMs = intent.getLongExtra(AnomalyActions.KEY_DURATION_MS, 0);
- final ResultReceiver resultReceiver = intent.getParcelableExtra(
- AnomalyActions.KEY_RESULT_RECEIVER);
-
- AnomalyActions.doAction(this, action, durationMs);
-
- if (resultReceiver != null) {
- resultReceiver.send(0 /* resultCode */, intent.getExtras());
- }
- }
-}
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/utils/AnomalyActions.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tester/utils/AnomalyActions.java
deleted file mode 100644
index 58e5a99fb5227113179b6e2dce9bef7a96cda9c4..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/utils/AnomalyActions.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.anomaly.tester.utils;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.le.BluetoothLeScanner;
-import android.bluetooth.le.ScanCallback;
-import android.bluetooth.le.ScanResult;
-import android.bluetooth.le.ScanSettings;
-import android.content.Context;
-import android.os.PowerManager;
-import android.util.Log;
-
-import java.util.List;
-
-/**
- * Actions to generate anomaly.
- */
-public class AnomalyActions {
- private static final String TAG = AnomalyActions.class.getSimpleName();
-
- public static final String KEY_ACTION = "action";
- public static final String KEY_DURATION_MS = "duration_ms";
- public static final String KEY_RESULT_RECEIVER = "result_receiver";
-
- public static final String ACTION_BLE_SCAN_UNOPTIMIZED = "action.ble_scan_unoptimized";
- public static final String ACTION_WAKE_LOCK = "action.wake_lock";
-
- public static void doAction(Context ctx, String actionCode, long durationMs) {
- if (actionCode == null) {
- Log.e(TAG, "Intent was missing action.");
- return;
- }
- switch (actionCode) {
- case ACTION_BLE_SCAN_UNOPTIMIZED:
- doUnoptimizedBleScan(ctx, durationMs);
- break;
- case ACTION_WAKE_LOCK:
- doHoldWakelock(ctx, durationMs);
- default:
- Log.e(TAG, "Intent had invalid action");
- }
- }
-
- private static void doUnoptimizedBleScan(Context ctx, long durationMs) {
- ScanSettings scanSettings = new ScanSettings.Builder()
- .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
-
- // perform ble scanning
- BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
- if (bluetoothAdapter == null || !bluetoothAdapter.isEnabled() ) {
- Log.e(TAG, "Device does not support Bluetooth or Bluetooth not enabled");
- return;
- }
- BluetoothLeScanner bleScanner = bluetoothAdapter.getBluetoothLeScanner();
- if (bleScanner == null) {
- Log.e(TAG, "Cannot access BLE scanner");
- return;
- }
-
- ScanCallback scanCallback = new ScanCallback() {
- @Override
- public void onScanResult(int callbackType, ScanResult result) {
- Log.v(TAG, "called onScanResult");
- }
-
- @Override
- public void onScanFailed(int errorCode) {
- Log.v(TAG, "called onScanFailed");
- }
-
- @Override
- public void onBatchScanResults(List results) {
- Log.v(TAG, "called onBatchScanResults");
- }
- };
-
- bleScanner.startScan(null, scanSettings, scanCallback);
- try {
- Thread.sleep(durationMs);
- } catch (InterruptedException e) {
- Log.e(TAG, "Thread couldn't sleep for " + durationMs, e);
- }
- bleScanner.stopScan(scanCallback);
- }
-
- private static void doHoldWakelock(Context ctx, long durationMs) {
- PowerManager powerManager = ctx.getSystemService(PowerManager.class);
- PowerManager.WakeLock wl = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
- "AnomalyWakeLock");
- wl.acquire();
- try {
- Thread.sleep(durationMs);
- } catch (InterruptedException e) {
- Log.e(TAG, "Thread couldn't sleep for " + durationMs, e);
- }
- wl.release();
- }
-}
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/utils/AnomalyPolicyBuilder.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tester/utils/AnomalyPolicyBuilder.java
deleted file mode 100644
index bf8e075d4f84359d07ff8946dd932129cfc80df7..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tester/utils/AnomalyPolicyBuilder.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.anomaly.tester.utils;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Builder to build the anomaly policy string, used in {@link android.provider.Settings.Global}
- *
- * @see android.provider.Settings.Global#ANOMALY_DETECTION_CONSTANTS
- */
-public class AnomalyPolicyBuilder {
- public static final String KEY_ANOMALY_DETECTION_ENABLED = "anomaly_detection_enabled";
- public static final String KEY_WAKELOCK_DETECTION_ENABLED = "wakelock_enabled";
- public static final String KEY_WAKEUP_ALARM_DETECTION_ENABLED = "wakeup_alarm_enabled";
- public static final String KEY_BLUETOOTH_SCAN_DETECTION_ENABLED = "bluetooth_scan_enabled";
- public static final String KEY_WAKELOCK_THRESHOLD = "wakelock_threshold";
- public static final String KEY_WAKEUP_ALARM_THRESHOLD = "wakeup_alarm_threshold";
- public static final String KEY_BLUETOOTH_SCAN_THRESHOLD = "bluetooth_scan_threshold";
-
- public static final String DELIM = ",";
-
- private Map mValues;
-
- public AnomalyPolicyBuilder() {
- mValues = new HashMap<>();
- }
-
- public AnomalyPolicyBuilder addPolicy(String key, String value) {
- mValues.put(key, value);
- return this;
- }
-
- public AnomalyPolicyBuilder addPolicy(String key, long value) {
- mValues.put(key, Long.toString(value));
- return this;
- }
-
-
- public AnomalyPolicyBuilder addPolicy(String key, boolean value) {
- mValues.put(key, value ? "true" : "false");
- return this;
- }
-
- public String build() {
- StringBuilder sb = new StringBuilder();
- for (Map.Entry entry : mValues.entrySet()) {
- sb.append(entry.getKey() + "=" + entry.getValue() + DELIM);
- }
-
- if (sb.length() != 0) {
- return sb.substring(0, sb.length() - 1);
- } else {
- return "";
- }
- }
-}
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/BluetoothAnomalyTest.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/BluetoothAnomalyTest.java
deleted file mode 100644
index 3630ce420dd38dbfff0f724dc67763a39f647643..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/BluetoothAnomalyTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.anomaly.tests;
-
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
-import android.text.format.DateUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Functional test for bluetooth unoptimized scanning anomaly detector
- *
- * @see com.android.settings.fuelgauge.anomaly.checker.BluetoothScanAnomalyDetector
- */
-@RunWith(AndroidJUnit4.class)
-public class BluetoothAnomalyTest {
- private static final String BATTERY_INTENT = "android.intent.action.POWER_USAGE_SUMMARY";
- private static final String RES_BT_EDITTEXT =
- "com.android.settings.anomaly.tester:id/bluetooth_run_time";
- private static final String RES_BT_BUTTON =
- "com.android.settings.anomaly.tester:id/bluetooth_button";
- private static final long TIME_OUT = 3000;
- private UiDevice mDevice;
-
- @Before
- public void setUp() {
- final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- final Context context = instrumentation.getContext();
- mDevice = UiDevice.getInstance(instrumentation);
-
- // setup environment
- TestUtils.setUp(instrumentation);
- // start anomaly-tester app
- TestUtils.startAnomalyApp(context, mDevice);
- }
-
- @After
- public void tearDown() {
- TestUtils.tearDown(InstrumentationRegistry.getInstrumentation());
- }
-
- @Test
- public void testBluetoothAnomaly_longScanningTime_reportAnomaly() throws InterruptedException {
- // Set running time
- final long durationMs = DateUtils.SECOND_IN_MILLIS * 15;
- TestUtils.setEditTextWithValue(mDevice, RES_BT_EDITTEXT, durationMs);
-
- // Click start button
- TestUtils.clickButton(mDevice, RES_BT_BUTTON);
-
- // Wait for its running
- mDevice.pressHome();
- TestUtils.wait(mDevice, durationMs);
-
- // Check it in battery main page
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(BATTERY_INTENT));
- assertWithMessage("Doesn't have bluetooth anomaly").that(
- mDevice.wait(Until.findObject(By.text("AnomalyTester draining battery")),
- TIME_OUT)).isNotNull();
- }
-
- @Test
- public void testBluetoothAnomaly_shortScanningTime_notReport() throws InterruptedException {
- // Set running time
- final long durationMs = DateUtils.SECOND_IN_MILLIS;
- TestUtils.setEditTextWithValue(mDevice, RES_BT_EDITTEXT, durationMs);
-
- // Click start button
- TestUtils.clickButton(mDevice, RES_BT_BUTTON);
-
- // Wait for its running
- mDevice.pressHome();
- TestUtils.wait(mDevice, durationMs);
-
- // Check it in battery main page
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(BATTERY_INTENT));
- assertWithMessage("Shouldn't have bluetooth anomaly").that(
- mDevice.wait(Until.findObject(By.text("AnomalyTester draining battery")),
- TIME_OUT)).isNull();
- }
-
-}
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/TestUtils.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/TestUtils.java
deleted file mode 100644
index ac15d77bb18736cc3169c81babd234b885e30f16..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/TestUtils.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.anomaly.tests;
-
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import android.app.Instrumentation;
-import android.app.UiAutomation;
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-
-public class TestUtils {
- private static final String PACKAGE_NAME = "com.android.settings.anomaly.tester";
- private static final long TIME_OUT = 3000;
-
- /**
- * This method set up the environment for anomaly test
- *
- * @param instrumentation to execute command
- */
- public static void setUp(Instrumentation instrumentation) {
- final UiAutomation uiAutomation = instrumentation.getUiAutomation();
- // pretend unplug and screen off, also reset the battery stats
- uiAutomation.executeShellCommand("dumpsys battery unplug");
- uiAutomation.executeShellCommand("dumpsys batterystats enable pretend-screen-off");
- uiAutomation.executeShellCommand("dumpsys batterystats --reset");
- }
-
- /**
- * This method cleans up all the commands in {@link #setUp(Instrumentation)}
- *
- * @param instrumentation to execute command
- */
- public static void tearDown(Instrumentation instrumentation) {
- final UiAutomation uiAutomation = instrumentation.getUiAutomation();
- // reset unplug and screen-off
- uiAutomation.executeShellCommand("dumpsys battery reset");
- uiAutomation.executeShellCommand("dumpsys batterystats disable pretend-screen-off");
- }
-
- public static void startAnomalyApp(Context context, UiDevice uiDevice) {
- final Intent intent = context.getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
- context.startActivity(intent);
- uiDevice.wait(Until.hasObject(By.pkg(PACKAGE_NAME).depth(0)), TIME_OUT);
- }
-
- /**
- * Find {@link android.widget.EditText} with {@code res} and set its {@code value}
- */
- public static void setEditTextWithValue(UiDevice uiDevice, String res, long value) {
- final UiObject2 editText = uiDevice.findObject(By.res(res));
- assertWithMessage("Cannot find editText with res: " + res).that(editText).isNotNull();
- editText.setText(String.valueOf(value));
- }
-
- /**
- * Find {@link android.widget.Button} with {@code res} and click it
- */
- public static void clickButton(UiDevice uiDevice, String res) {
- final UiObject2 button = uiDevice.findObject(By.res(res));
- assertWithMessage("Cannot find button with res: " + res).that(button).isNotNull();
- button.click();
- }
-
- /**
- * Make {@link UiDevice} wait for {@code timeMs}
- *
- * @see Thread#sleep(long)
- */
- public static void wait(UiDevice uiDevice, long timeMs) throws InterruptedException {
- uiDevice.waitForIdle();
- Thread.sleep(timeMs);
- }
-}
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/WakelockAnomalyTest.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/WakelockAnomalyTest.java
deleted file mode 100644
index a2f380489777064742272e750426ea1961b69947..0000000000000000000000000000000000000000
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/WakelockAnomalyTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.anomaly.tests;
-
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
-import android.text.format.DateUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Functional test for bluetooth unoptimized scanning anomaly detector
- *
- * @see com.android.settings.fuelgauge.anomaly.checker.BluetoothScanAnomalyDetector
- */
-@RunWith(AndroidJUnit4.class)
-public class WakelockAnomalyTest {
- private static final String BATTERY_INTENT = "android.intent.action.POWER_USAGE_SUMMARY";
- private static final String RES_WAKELOCK_EDITTEXT =
- "com.android.settings.anomaly.tester:id/wakelock_run_time";
- private static final String RES_WAKELOCK_BUTTON =
- "com.android.settings.anomaly.tester:id/wakelock_button";
- private static final long TIME_OUT = 3000;
- private UiDevice mDevice;
-
- @Before
- public void setUp() {
- final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- final Context context = instrumentation.getContext();
- mDevice = UiDevice.getInstance(instrumentation);
-
- // setup environment
- TestUtils.setUp(instrumentation);
- // start anomaly-tester app
- TestUtils.startAnomalyApp(context, mDevice);
- }
-
- @After
- public void tearDown() {
- TestUtils.tearDown(InstrumentationRegistry.getInstrumentation());
- }
-
- @Test
- public void testWakelockAnomaly_longTimeWhileRunning_report() throws InterruptedException {
- // Set running time
- final long durationMs = DateUtils.SECOND_IN_MILLIS * 15;
- TestUtils.setEditTextWithValue(mDevice, RES_WAKELOCK_EDITTEXT, durationMs);
-
- // Click start button
- TestUtils.clickButton(mDevice, RES_WAKELOCK_BUTTON);
-
- // Wait for its running
- mDevice.pressHome();
- // Sleeping time less than running time, so the app still holding wakelock when we check
- TestUtils.wait(mDevice, durationMs - TIME_OUT);
-
- // Check it in battery main page
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(BATTERY_INTENT));
- assertWithMessage("Doesn't have wakelock anomaly").that(
- mDevice.wait(Until.findObject(By.text("AnomalyTester draining battery")),
- TIME_OUT)).isNotNull();
- }
-
- @Test
- public void testWakelockAnomaly_shortTime_notReport() throws InterruptedException {
- // Set running time
- final long durationMs = DateUtils.SECOND_IN_MILLIS;
- TestUtils.setEditTextWithValue(mDevice, RES_WAKELOCK_EDITTEXT, durationMs);
-
- // Click start button
- TestUtils.clickButton(mDevice, RES_WAKELOCK_BUTTON);
-
- // Wait for its running
- mDevice.pressHome();
- TestUtils.wait(mDevice, durationMs);
-
- // Check it in battery main page
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(BATTERY_INTENT));
- assertWithMessage("Shouldn't have wakelock anomaly").that(
- mDevice.wait(Until.findObject(By.text("AnomalyTester draining battery")),
- TIME_OUT)).isNull();
- }
-
- @Test
- public void testWakelockAnomaly_longTimeWhileNotRunning_notReport()
- throws InterruptedException {
- // Set running time
- final long durationMs = DateUtils.SECOND_IN_MILLIS * 10;
- TestUtils.setEditTextWithValue(mDevice, RES_WAKELOCK_EDITTEXT, durationMs);
-
- // Click start button
- TestUtils.clickButton(mDevice, RES_WAKELOCK_BUTTON);
-
- // Wait for its running
- mDevice.pressHome();
- // Wait more time for releasing the wakelock
- TestUtils.wait(mDevice, durationMs + TIME_OUT);
-
- // Check it in battery main page
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(BATTERY_INTENT));
- assertWithMessage("Shouldn't have wakelock anomaly").that(
- mDevice.wait(Until.findObject(By.text("AnomalyTester draining battery")),
- TIME_OUT)).isNull();
- }
-
-}
diff --git a/tests/app/Android.mk b/tests/app/Android.mk
deleted file mode 100644
index c0c0ccfc852c6346caaa1c9c2907c82b5122b2a4..0000000000000000000000000000000000000000
--- a/tests/app/Android.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-LOCAL_CERTIFICATE := platform
-
-LOCAL_JAVA_LIBRARIES := android.test.runner bouncycastle
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
- android-support-test \
- mockito-target \
- espresso-core \
- espresso-contrib-nodep \
- espresso-intents-nodep \
- ub-uiautomator \
- truth-prebuilt \
- legacy-android-test
-
-# Include all test java files.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := SettingsTests
-
-LOCAL_INSTRUMENTATION_FOR := Settings
-
-include $(BUILD_PACKAGE)
diff --git a/tests/app/AndroidManifest.xml b/tests/app/AndroidManifest.xml
deleted file mode 100644
index 6659e5ff18482d99d7f18654b2376a731ba7790c..0000000000000000000000000000000000000000
--- a/tests/app/AndroidManifest.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/app/res/drawable-hdpi/ic_settings_applications.png b/tests/app/res/drawable-hdpi/ic_settings_applications.png
deleted file mode 100755
index 5cea33f487a41ed762dfdb099a479faee02943b8..0000000000000000000000000000000000000000
Binary files a/tests/app/res/drawable-hdpi/ic_settings_applications.png and /dev/null differ
diff --git a/tests/app/res/drawable-mdpi/ic_settings_applications.png b/tests/app/res/drawable-mdpi/ic_settings_applications.png
deleted file mode 100755
index 745ff2a159880c08df7ed2f02ed8260ae02b066b..0000000000000000000000000000000000000000
Binary files a/tests/app/res/drawable-mdpi/ic_settings_applications.png and /dev/null differ
diff --git a/tests/app/res/drawable-xhdpi/ic_settings_applications.png b/tests/app/res/drawable-xhdpi/ic_settings_applications.png
deleted file mode 100644
index 8eda83fc81d6934551a25a9380f2c505a7a1a45b..0000000000000000000000000000000000000000
Binary files a/tests/app/res/drawable-xhdpi/ic_settings_applications.png and /dev/null differ
diff --git a/tests/app/res/layout/bluetooth_request_permission_test.xml b/tests/app/res/layout/bluetooth_request_permission_test.xml
deleted file mode 100644
index b62db197ce60587dbbc547bae6555409fe34ad9b..0000000000000000000000000000000000000000
--- a/tests/app/res/layout/bluetooth_request_permission_test.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/app/res/layout/manufacturer_main.xml b/tests/app/res/layout/manufacturer_main.xml
deleted file mode 100644
index 8f8c48f1f26f62829d06ea81530db4217ba15600..0000000000000000000000000000000000000000
--- a/tests/app/res/layout/manufacturer_main.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/app/res/layout/operator_main.xml b/tests/app/res/layout/operator_main.xml
deleted file mode 100644
index 3cf8e00aab2ef11f85d8265e49758ac78fd36d7c..0000000000000000000000000000000000000000
--- a/tests/app/res/layout/operator_main.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
diff --git a/tests/app/res/values-af/strings.xml b/tests/app/res/values-af/strings.xml
deleted file mode 100644
index 5a9ae32ae58e73eab7f1b80b35a1c3703910ca4f..0000000000000000000000000000000000000000
--- a/tests/app/res/values-af/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Opspoorbaar"
- "Begin skandering"
- "Stop skandering"
- "Hallo, operateur!"
- "Operateur"
- "Operateurhoek wat gebruik kan word om voorkeuraktiwiteit te begin"
- "Hallo, vervaardiger!"
- "Vervaardiger"
- "Vervaardigerhoek wat gebruik kan word om voorkeuraktiwiteit te begin"
-
diff --git a/tests/app/res/values-am/strings.xml b/tests/app/res/values-am/strings.xml
deleted file mode 100644
index f77c8528a087e15ed3c53fd026bb11380083c20e..0000000000000000000000000000000000000000
--- a/tests/app/res/values-am/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "ሊገኝ የሚችል"
- "ቅኝት ጀምር"
- "ቅኝት አቁም"
- "ታዲያስ ከዋኝ!"
- "ከዋኝ"
- "የምርጫን እንቅስቃሴ ለማስጀመር ጥቅም ላይ መዋል የሚችል የከዋኝ መንጠቆ።"
- "ታዲያስ አምራች!"
- "አምራች"
- "የምርጫን እንቅስቃሴ ለማስጀመር ጥቅም ላይ መዋል የሚችል የአምራች መንጠቆ።"
-
diff --git a/tests/app/res/values-ar/strings.xml b/tests/app/res/values-ar/strings.xml
deleted file mode 100644
index 6ca54bef0120befd62fff1d0b6082cc09a4690f2..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ar/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "قابل للاكتشاف"
- "بدء الفحص"
- "إيقاف الفحص"
- "مرحبًا بمشغِّل شبكة الجوّال!"
- "مشغِّل شبكة الجوال"
- "أداة مشغِّل شبكة الجوّال التي يمكن استخدامها لبدء النشاط المختار"
- "مرحبًا بجهة التصنيع!"
- "جهة التصنيع"
- "أداة جهة التصنيع التي يمكن استخدامها لبدء النشاط المختار"
-
diff --git a/tests/app/res/values-az/strings.xml b/tests/app/res/values-az/strings.xml
deleted file mode 100644
index d24e093e49e38c5ea2e3defb3efcebaa117263b8..0000000000000000000000000000000000000000
--- a/tests/app/res/values-az/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Aşkarlana bilən"
- "Skana başlay"
- "Skan prosesini dayandırın"
- "Salam, Operator!"
- "Operator"
- "Seçim fəaliyyətinə başlamaq üçün istifadə edilə bilən Operator qarmağı"
- "İstehsalçıya Salamlar!"
- "İstehsalçı"
- "İstehsalçı dəhrəsi seçim aktivliyinə başlamaq üçün işlənə bilər"
-
diff --git a/tests/app/res/values-b+sr+Latn/strings.xml b/tests/app/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index 9ee1c5ee8e36f433e1c04de0baf5cb191ca35718..0000000000000000000000000000000000000000
--- a/tests/app/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Vidljivo"
- "Pokreni skeniranje"
- "Zaustavi skeniranje"
- "Zdravo, operateru!"
- "Mobilni operater"
- "Mamac za operatera koji može da se koristi za pokretanje željene aktivnosti"
- "Zdravo, proizvođaču!"
- "Proizvođač"
- "Mamac za proizvođača koji može da se koristi za pokretanje željene aktivnosti"
-
diff --git a/tests/app/res/values-be/strings.xml b/tests/app/res/values-be/strings.xml
deleted file mode 100644
index 41d62b43d69741346e8d95e8cdefe4ceccc98eb0..0000000000000000000000000000000000000000
--- a/tests/app/res/values-be/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Бачная прылада"
- "Пачаць сканіраванне"
- "Спыніць сканіраванне"
- "Прывітанне, аператар!"
- "Аператар"
- "Хітрык аператара, які можна выкарыстоўваць для выбранай дзейнасці"
- "Прывітанне, вытворца!"
- "Вытворца"
- "Заводскі сродак перахопу, праз які можна распачаць патрэбныя дзеянні"
-
diff --git a/tests/app/res/values-bg/strings.xml b/tests/app/res/values-bg/strings.xml
deleted file mode 100644
index 580bf85e4f5ee679f7ec2a92adbd3e9bda91ffda..0000000000000000000000000000000000000000
--- a/tests/app/res/values-bg/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Откриваемо"
- "Стартиране на сканирането"
- "Спиране на сканирането"
- "Здравейте, операторе!"
- "Оператор"
- "Фраза за поздрав към оператора, чрез която може да се стартира желана дейност"
- "Здравейте, производителю!"
- "Производител"
- "Фраза за поздрав към производителя, чрез която може да се стартира желана дейност"
-
diff --git a/tests/app/res/values-bn/strings.xml b/tests/app/res/values-bn/strings.xml
deleted file mode 100644
index ac6edab94419e494f8e20876bfe7926ecdbeaaa9..0000000000000000000000000000000000000000
--- a/tests/app/res/values-bn/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "খুঁজে নেওয়ার যোগ্য"
- "স্ক্যান শুরু করুন"
- "স্ক্যান বন্ধ করুন"
- "হ্যালো অপারেটর!"
- "অপারেটর"
- "অপারেটর হুক যা পছন্দের কার্যকলাপ শুরু করতে ব্যবহার করা যেতে পারে"
- "হ্যালো প্রস্তুতকর্তা!"
- "প্রস্তুতকারক"
- "প্রস্তুতকর্তা হুক যা পছন্দের কার্যকলাপ শুরু করতে ব্যবহার করা যেতে পারে"
-
diff --git a/tests/app/res/values-bs/strings.xml b/tests/app/res/values-bs/strings.xml
deleted file mode 100644
index db915321d89f0e5690789d1d57a6268a5bb41c19..0000000000000000000000000000000000000000
--- a/tests/app/res/values-bs/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Vidljiv"
- "Započni skeniranje"
- "Zaustavi skeniranje"
- "Zdravo, operateru!"
- "Operater"
- "Zakačka operatera koja se može koristiti za pokretanje aktivnosti po izboru"
- "Zdravo, proizvođaču!"
- "Proizvođač"
- "Zakačka proizvođača koja se može koristiti za pokretanje aktivnosti po izboru"
-
diff --git a/tests/app/res/values-ca/strings.xml b/tests/app/res/values-ca/strings.xml
deleted file mode 100644
index e324eeb4678d02da6af42b88e25ad6e24c8bbf89..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ca/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Visible"
- "Inicia la cerca"
- "Atura la cerca"
- "Hola, operador!"
- "Operador"
- "Esquer per a l\'operador que es pot utilitzar per iniciar l\'activitat triada"
- "Hola, fabricant!"
- "Fabricant"
- "Esquer per al fabricant que es pot utilitzar per iniciar l\'activitat triada"
-
diff --git a/tests/app/res/values-cs/strings.xml b/tests/app/res/values-cs/strings.xml
deleted file mode 100644
index 92a93cf50a486919cb0df8fd997b135e4bdc61cb..0000000000000000000000000000000000000000
--- a/tests/app/res/values-cs/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Viditelné"
- "Zahájit vyhledávání"
- "Zastavit vyhledávání"
- "Ahoj operátore!"
- "Operátor"
- "Háček operátora, který lze použít ke spuštění vybrané činnosti"
- "Ahoj výrobce!"
- "Výrobce"
- "Háček výrobce, který lze použít ke spuštění vybrané činnosti"
-
diff --git a/tests/app/res/values-da/strings.xml b/tests/app/res/values-da/strings.xml
deleted file mode 100644
index 6a76b15bdaddbeaf9f545b0f97533b583834aa4d..0000000000000000000000000000000000000000
--- a/tests/app/res/values-da/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Søgbar"
- "Start scanning"
- "Stop scanning"
- "Hej mobilselskab"
- "Mobilselskab"
- "Hook fra mobilselskabet, der kan bruges til at starte en aktivitet"
- "Hej producent"
- "Producent"
- "Hook fra producenten, der kan bruges til at starte en aktivitet"
-
diff --git a/tests/app/res/values-de/strings.xml b/tests/app/res/values-de/strings.xml
deleted file mode 100644
index 8916379f42779ffffff873382ef8d227ee86b73c..0000000000000000000000000000000000000000
--- a/tests/app/res/values-de/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Sichtbar"
- "Scan starten"
- "Scan beenden"
- "Hallo Operator!"
- "Operator"
- "Operator-Hook zum Starten einer gewünschten Aktivität"
- "Hallo Hersteller!"
- "Hersteller"
- "Hersteller-Hook zum Starten einer gewünschten Aktivität"
-
diff --git a/tests/app/res/values-el/strings.xml b/tests/app/res/values-el/strings.xml
deleted file mode 100644
index 1e7f4ec18b2a889e641f645cd1fda803a476a00f..0000000000000000000000000000000000000000
--- a/tests/app/res/values-el/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Ανιχνεύσιμο"
- "Έναρξη σάρωσης"
- "Διακοπή σάρωσης"
- "Γεια σας, χειριστή!"
- "Χειριστής"
- "Άγκιστρο χειριστή που μπορεί να χρησιμοποιηθεί για την έναρξη της επιλεγμένης δραστηριότητας"
- "Γεια σας, κατασκευαστή!"
- "Κατασκευαστής"
- "Άγκιστρο κατασκευαστή που μπορεί να χρησιμοποιηθεί για την έναρξη της επιλεγμένης δραστηριότητας"
-
diff --git a/tests/app/res/values-en-rAU/strings.xml b/tests/app/res/values-en-rAU/strings.xml
deleted file mode 100644
index e1a9a098364476a88754c5e075102a4e727d0bb1..0000000000000000000000000000000000000000
--- a/tests/app/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Discoverable"
- "Start scan"
- "Stop scan"
- "Hello Operator!"
- "Operator"
- "Operator\'s hook that can be used to start activity of choice"
- "Hello Manufacturer!"
- "Manufacturer"
- "Manufacturer\'s hook that can be used to start activity of choice"
-
diff --git a/tests/app/res/values-en-rCA/strings.xml b/tests/app/res/values-en-rCA/strings.xml
deleted file mode 100644
index e1a9a098364476a88754c5e075102a4e727d0bb1..0000000000000000000000000000000000000000
--- a/tests/app/res/values-en-rCA/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Discoverable"
- "Start scan"
- "Stop scan"
- "Hello Operator!"
- "Operator"
- "Operator\'s hook that can be used to start activity of choice"
- "Hello Manufacturer!"
- "Manufacturer"
- "Manufacturer\'s hook that can be used to start activity of choice"
-
diff --git a/tests/app/res/values-en-rGB/strings.xml b/tests/app/res/values-en-rGB/strings.xml
deleted file mode 100644
index e1a9a098364476a88754c5e075102a4e727d0bb1..0000000000000000000000000000000000000000
--- a/tests/app/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Discoverable"
- "Start scan"
- "Stop scan"
- "Hello Operator!"
- "Operator"
- "Operator\'s hook that can be used to start activity of choice"
- "Hello Manufacturer!"
- "Manufacturer"
- "Manufacturer\'s hook that can be used to start activity of choice"
-
diff --git a/tests/app/res/values-en-rIN/strings.xml b/tests/app/res/values-en-rIN/strings.xml
deleted file mode 100644
index e1a9a098364476a88754c5e075102a4e727d0bb1..0000000000000000000000000000000000000000
--- a/tests/app/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Discoverable"
- "Start scan"
- "Stop scan"
- "Hello Operator!"
- "Operator"
- "Operator\'s hook that can be used to start activity of choice"
- "Hello Manufacturer!"
- "Manufacturer"
- "Manufacturer\'s hook that can be used to start activity of choice"
-
diff --git a/tests/app/res/values-en-rXC/strings.xml b/tests/app/res/values-en-rXC/strings.xml
deleted file mode 100644
index 0b0936161d9ca0ec61f0a229efa6e3f877714f37..0000000000000000000000000000000000000000
--- a/tests/app/res/values-en-rXC/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Discoverable"
- "Start scan"
- "Stop scan"
- "Hello Operator!"
- "Operator"
- "Operator hook that can be used to start activity of choice"
- "Hello Manufacturer!"
- "Manufacturer"
- "Manufacturer hook that can be used to start activity of choice"
-
diff --git a/tests/app/res/values-es-rUS/strings.xml b/tests/app/res/values-es-rUS/strings.xml
deleted file mode 100644
index 1ea3671cd344c4390b146a85d6ae53aaa995fa44..0000000000000000000000000000000000000000
--- a/tests/app/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Visible"
- "Comenzar lectura"
- "Detener lectura"
- "¡Hola operador!"
- "Operador"
- "Vínculo del operador que puede utilizarse para iniciar la actividad que elijas"
- "¡Hola fabricante!"
- "Fabricante"
- "Vínculo del fabricante que puede utilizarse para iniciar la actividad que elijas"
-
diff --git a/tests/app/res/values-es/strings.xml b/tests/app/res/values-es/strings.xml
deleted file mode 100644
index efd42e3cc3c072a8a2d77e81e5a1096993e623e9..0000000000000000000000000000000000000000
--- a/tests/app/res/values-es/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Visible"
- "Iniciar búsqueda"
- "Detener búsqueda"
- "¡Hola, operador!"
- "Operador"
- "Enlace del operador que se puede utilizar para iniciar la selección"
- "¡Hola, fabricante!"
- "Fabricante"
- "Enlace del fabricante que se puede utilizar para iniciar la selección"
-
diff --git a/tests/app/res/values-et/strings.xml b/tests/app/res/values-et/strings.xml
deleted file mode 100644
index 077d066116d034ac7722f01f25237b70f8111edc..0000000000000000000000000000000000000000
--- a/tests/app/res/values-et/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Leitav"
- "Käivita skannimine"
- "Peata skannimine"
- "Tere, operaator!"
- "Operaator"
- "Operaatoriharki saab kasutada teie valitud tegevuse käivitamiseks"
- "Tere, tootja!"
- "Tootja"
- "Tootjaharki saab kasutada teie valitud tegevuse käivitamiseks"
-
diff --git a/tests/app/res/values-eu/strings.xml b/tests/app/res/values-eu/strings.xml
deleted file mode 100644
index 22344369f095684163c4e2fffeeca1fb25bb89fb..0000000000000000000000000000000000000000
--- a/tests/app/res/values-eu/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Ikusgai"
- "Hasi aztertzen"
- "Gelditu azterketa"
- "Kaixo, operadore hori!"
- "Operadorea"
- "Operadorearen lotura, jarduerak nahieran hasteko erabil daitekeena"
- "Kaixo, fabrikatzaile hori!"
- "Fabrikatzailea"
- "Fabrikatzailearen lotura, jarduerak nahieran hasteko erabil daitekeena"
-
diff --git a/tests/app/res/values-fa/strings.xml b/tests/app/res/values-fa/strings.xml
deleted file mode 100644
index 5f8a919204955b32ea3a915128cdb3799aa7f804..0000000000000000000000000000000000000000
--- a/tests/app/res/values-fa/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "قابل شناسایی"
- "شروع اسکن"
- "توقف اسکن"
- "سلام اپراتور!"
- "اپراتور"
- "گیره اپراتور که میتوان از آن برای شروع فعالیت دلخواه استفاده کرد"
- "سلام سازنده!"
- "سازنده"
- "گیره سازنده که میتوان از آن برای شروع فعالیت دلخواه استفاده کرد"
-
diff --git a/tests/app/res/values-fi/strings.xml b/tests/app/res/values-fi/strings.xml
deleted file mode 100644
index 0b2b23708b8746d88974fa26c7b7e062ad43c989..0000000000000000000000000000000000000000
--- a/tests/app/res/values-fi/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Tunnistettavissa"
- "Aloita haku"
- "Pysäytä haku"
- "Hei operaattori!"
- "Operaattori"
- "Operaattorin pakote, jonka avulla voidaan aloittaa valittu toiminto"
- "Hei valmistaja!"
- "Valmistaja"
- "Valmistajan pakote, jonka avulla valittu toiminto voidaan aloittaa"
-
diff --git a/tests/app/res/values-fr-rCA/strings.xml b/tests/app/res/values-fr-rCA/strings.xml
deleted file mode 100644
index f8df49a74c3e41cf0bbbe5c6488fb3619cd9cf7b..0000000000000000000000000000000000000000
--- a/tests/app/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Visible"
- "Démarrer la recherche"
- "Arrêter la recherche"
- "Bonjour, fournisseur de services!"
- "Fournisseur de services"
- "Accroche à l\'intention du fournisseur de services pouvant servir à démarrer l\'opération souhaitée"
- "Bonjour, fabricant!"
- "Fabricant"
- "Accroche à l\'intention du fabricant pouvant servir à démarrer l\'opération souhaitée"
-
diff --git a/tests/app/res/values-fr/strings.xml b/tests/app/res/values-fr/strings.xml
deleted file mode 100644
index a2df7ed96451b39f808e805023ccd5dbef273c40..0000000000000000000000000000000000000000
--- a/tests/app/res/values-fr/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Visible"
- "Démarrer la recherche"
- "Arrêter la recherche"
- "Hello Operator!"
- "Opérateur"
- "Accroche opérateur pouvant servir à démarrer l\'opération souhaitée"
- "Hello Manufacturer!"
- "Fabricant"
- "Accroche fabricant pouvant servir à démarrer l\'opération souhaitée"
-
diff --git a/tests/app/res/values-gl/strings.xml b/tests/app/res/values-gl/strings.xml
deleted file mode 100644
index d4343d21cd3ba8d7825d078327c0551e89a2084e..0000000000000000000000000000000000000000
--- a/tests/app/res/values-gl/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Detectable"
- "Iniciar escaneo"
- "Deter escaneo"
- "Ola, operador!"
- "Operador"
- "Gancho do operador que se pode usar para iniciar a actividade escollida"
- "Ola, fabricante!"
- "Fabricante"
- "Gancho do fabricante que se pode usar para iniciar a actividade escollida"
-
diff --git a/tests/app/res/values-gu/strings.xml b/tests/app/res/values-gu/strings.xml
deleted file mode 100644
index 703f70e8e869ab1086a9c3883eb2a131846014ec..0000000000000000000000000000000000000000
--- a/tests/app/res/values-gu/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "શોધવાયોગ્ય"
- "સ્કૅન પ્રારંભ કરો"
- "સ્કૅન રોકો"
- "ઓપરેટરને નમસ્કાર!"
- "ઓપરેટર"
- "ઓપરેટર હુક કે જેનો ઉપયોગ પસંદગીની પ્રવૃત્તિ પ્રારંભ કરવા માટે કરી શકાય છે"
- "નિર્માતાને નમસ્કાર!"
- "નિર્માતા"
- "નિર્માતા હુક કે જેનો ઉપયોગ પસંદગીની પ્રવૃત્તિ પ્રારંભ કરવા માટે કરી શકાય છે"
-
diff --git a/tests/app/res/values-hi/strings.xml b/tests/app/res/values-hi/strings.xml
deleted file mode 100644
index 3a754c65ce3249009c4416f54d1256d8583f5ba0..0000000000000000000000000000000000000000
--- a/tests/app/res/values-hi/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "खोजे जाने लायक"
- "स्कैन शुरू करें"
- "स्कैन बंद करें"
- "नमस्कार ऑपरेटर!"
- "ऑपरेटर"
- "पसंद की गतिविधि प्रारंभ करने में उपयोग किया जाने वाला ऑपरेटर हुक"
- "नमस्कार निर्माता!"
- "निर्माता"
- "पसंद की गतिविधि प्रारंभ करने में उपयोग किया जाने वाला निर्माता हुक"
-
diff --git a/tests/app/res/values-hr/strings.xml b/tests/app/res/values-hr/strings.xml
deleted file mode 100644
index 768ebb75a87a7c8908777c21bc3bd501e833f2fd..0000000000000000000000000000000000000000
--- a/tests/app/res/values-hr/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Moguće otkrivanje"
- "Pokreni skeniranje"
- "Zaustavi skeniranje"
- "Pozdrav, operateru!"
- "Mobilni operater"
- "Operatorska kvaka koja se može upotrijebiti da bi se započela odabrana aktivnost"
- "Pozdrav, proizvođaču!"
- "Proizvođač"
- "Proizvođačka kvaka koja se može upotrijebiti da bi se započela odabrana aktivnost"
-
diff --git a/tests/app/res/values-hu/strings.xml b/tests/app/res/values-hu/strings.xml
deleted file mode 100644
index da413963e8fff599afa18aaaa84bcd6a5d2f189a..0000000000000000000000000000000000000000
--- a/tests/app/res/values-hu/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Látható"
- "Keresés indítása"
- "Keresés leállítása"
- "Üdv, Operátor!"
- "Szolgáltató"
- "Operátori horog, amelyet tetszés szerinti tevékenység elindítására lehet használni"
- "Tisztelt Gyártó!"
- "Gyártó"
- "Gyártói horog, amely tetszés szerinti tevékenység elindítására használható"
-
diff --git a/tests/app/res/values-hy/strings.xml b/tests/app/res/values-hy/strings.xml
deleted file mode 100644
index c8cd4a148ec352592177daf1042b0f13db8528e9..0000000000000000000000000000000000000000
--- a/tests/app/res/values-hy/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Հայտնաբերելի"
- "Սկսել սկանավորումը"
- "Դադարեցնել սկանավորումը"
- "Ողջու˜յն, օպերատոր:"
- "Օպերատոր"
- "Օպերատորի սլաքը կարող է օգտագործվել ընտրված գործողությունը սկսելու համար"
- "Ողջու˜յն, արտադրող:"
- "Արտադրող"
- "Արտադրողի սլաքը կարող է օգտագործվել ընտրված գործողությունը սկսելու համար"
-
diff --git a/tests/app/res/values-in/strings.xml b/tests/app/res/values-in/strings.xml
deleted file mode 100644
index 51c474c463ea9810284faef0991c2ecf5f9751d5..0000000000000000000000000000000000000000
--- a/tests/app/res/values-in/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Dapat ditemukan"
- "Mulai memindai"
- "Hentikan pemindaian"
- "Halo Operator!"
- "Operator"
- "Hook operator yang dapat digunakan untuk memulai aktivitas pilihan"
- "Halo Pabrikan!"
- "Produsen"
- "Hook produsen yang dapat digunakan untuk memulai aktivitas pilihan"
-
diff --git a/tests/app/res/values-is/strings.xml b/tests/app/res/values-is/strings.xml
deleted file mode 100644
index 4d694ccead1220083803b3676d689c663f9d0c7f..0000000000000000000000000000000000000000
--- a/tests/app/res/values-is/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Sýnilegt"
- "Hefja skönnun"
- "Stöðva skönnun"
- "Halló, símafyrirtæki!"
- "Símafyrirtæki"
- "Símafyrirtækishlið sem hægt er að nota til að ræsa hvaða virkni sem er"
- "Halló, framleiðandi!"
- "Framleiðandi"
- "Framleiðandahlið sem hægt er að nota til að ræsa hvaða virkni sem er"
-
diff --git a/tests/app/res/values-it/strings.xml b/tests/app/res/values-it/strings.xml
deleted file mode 100644
index 46a8a1c22e7834b0dc5464dd60a2ec1a541017c7..0000000000000000000000000000000000000000
--- a/tests/app/res/values-it/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Rilevabile"
- "Avvia scansione"
- "Interrompi scansione"
- "Ciao operatore!"
- "Operatore"
- "Collegamento all\'operatore utilizzabile per avviare l\'attività di propria scelta"
- "Ciao produttore!"
- "Produttore"
- "Collegamento al produttore utilizzabile per avviare l\'attività di propria scelta"
-
diff --git a/tests/app/res/values-iw/strings.xml b/tests/app/res/values-iw/strings.xml
deleted file mode 100644
index a2c9e4654a33433d13906385cb8abf26203c85b6..0000000000000000000000000000000000000000
--- a/tests/app/res/values-iw/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "גלוי"
- "התחל סריקה"
- "הפסק סריקה"
- "שלום לך ספק!"
- "ספק"
- "חיבור ספק שיכול לשמש להתחלת הפעילות שנבחרה"
- "שלום לך יצרן!"
- "יצרן"
- "חיבור יצרן שיכול לשמש להתחלת הפעילות שנבחרה"
-
diff --git a/tests/app/res/values-ja/strings.xml b/tests/app/res/values-ja/strings.xml
deleted file mode 100644
index 5b663e7ec8049335a18e911bb1e970e12b2c38f7..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ja/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "検出可能"
- "スキャンを開始"
- "スキャンを停止"
- "オペレーター"
- "オペレーター"
- "選択した操作を開始するためのオペレーター フック"
- "メーカー"
- "メーカー"
- "選択した操作を開始するためのメーカーフック"
-
diff --git a/tests/app/res/values-ka/strings.xml b/tests/app/res/values-ka/strings.xml
deleted file mode 100644
index 303a3c525489c0abd3b8f71d32220fdf867c06b9..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ka/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "აღმოჩენადი"
- "სკანირების დაწყება"
- "სკანირების შეწყვეტა"
- "გამარჯობა, ოპერატორო!"
- "ოპერატორი"
- "ოპერატორის ფანდი, რომლის გამოყენებაც არჩევანის გაკეთების იძულებისთვის შეიძლება"
- "გამარჯობა, მწარმოებელო!"
- "მწარმოებელი"
- "მწარმოებლის ფანდი, რომლის გამოყენებაც არჩევანის გაკეთების იძულებისთვის შეიძლება"
-
diff --git a/tests/app/res/values-kk/strings.xml b/tests/app/res/values-kk/strings.xml
deleted file mode 100644
index f68c61b54e44db0386fe71c76da54f14e0f20457..0000000000000000000000000000000000000000
--- a/tests/app/res/values-kk/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Табу мүмкіндігі бар"
- "Іздеуді бастау"
- "Іздеуді тоқтату"
- "Сәлем, Operator!"
- "Operator"
- "Таңдалған әрекетті іске қосу үшін пайдалануға болатын Operator хугы"
- "Сәлем, Manufacturer!"
- "Өндіруші"
- "Таңдалған әрекетті іске қосу үшін пайдалануға болатын Manufacturer хугы"
-
diff --git a/tests/app/res/values-km/strings.xml b/tests/app/res/values-km/strings.xml
deleted file mode 100644
index a738ee00488e6e5ae992e9226ae7a10dd7917302..0000000000000000000000000000000000000000
--- a/tests/app/res/values-km/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "អាចរកឃើញ"
- "ចាប់ផ្ដើមស្កេន"
- "ឈប់ស្កេន"
- "សួស្ដីប្រតិបត្តិករ!"
- "ប្រតិបត្តិករ"
- "ការទាក់ទាញប្រតិបត្តិករអាចត្រូវបានប្រើដើម្បីចាប់ផ្ដើមជម្រើសសកម្មភាព"
- "សួស្ដីក្រុមហ៊ុនផលិត!"
- "ក្រុមហ៊ុនផលិត"
- "ការទាក់ទាញក្រុមហ៊ុនផលិតអាចត្រូវបានប្រើដើម្បីចាប់ផ្ដើមជម្រើសសកម្មភាព"
-
diff --git a/tests/app/res/values-kn/strings.xml b/tests/app/res/values-kn/strings.xml
deleted file mode 100644
index 2bc15ed342aa4e46fdfa2bdd8afa36111a54fc70..0000000000000000000000000000000000000000
--- a/tests/app/res/values-kn/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "ಅನ್ವೇಷಿಸಬಹುದಾದ"
- "ಸ್ಕ್ಯಾನ್ ಪ್ರಾರಂಭಿಸಿ"
- "ಸ್ಕ್ಯಾನ್ ನಿಲ್ಲಿಸಿ"
- "ಹಲೋ ಆಪರೇಟರ್!"
- "ಆಪರೇಟರ್"
- "ಆಯ್ಕೆಯ ಚಟುವಟಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಬಳಸಬಹುದಾದ ಆಪರೇಟರ್ ಹುಕ್"
- "ಹಲೋ ತಯಾರಕರೇ!"
- "ತಯಾರಕರು"
- "ಆಯ್ಕೆಯ ಚಟುವಟಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಬಳಸಬಹುದಾದ ತಯಾರಕರ ಹುಕ್"
-
diff --git a/tests/app/res/values-ko/strings.xml b/tests/app/res/values-ko/strings.xml
deleted file mode 100644
index 996016cfe735ecbc5428454166a759ebd69bfc96..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ko/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "검색 가능"
- "검색 시작"
- "검색 중지"
- "운영자님, 안녕하세요."
- "운영자"
- "선택한 작업을 시작하는 데 사용할 수 있는 운영자 안내"
- "제조업자님, 안녕하세요."
- "제조업체"
- "선택한 작업을 시작하는 데 사용할 수 있는 제조업체 안내"
-
diff --git a/tests/app/res/values-ky/strings.xml b/tests/app/res/values-ky/strings.xml
deleted file mode 100644
index 766d591437b00d6d8370c86627594ae8d492a32e..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ky/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Ачык"
- "Скандоону баштоо"
- "Скандоону токтотуу"
- "Салам!"
- "Оператор"
- "Тандалган аракетти баштоо үчүн колдонула турган оператордун куралы"
- "Салам!"
- "Өндүрүүчү"
- "Тандалган аракетти баштоо үчүн колдонула турган өндүрүүчүнүн куралы"
-
diff --git a/tests/app/res/values-lo/strings.xml b/tests/app/res/values-lo/strings.xml
deleted file mode 100644
index b10e8e46d7fc5cd40b371bfd1436e93cfdd2ec27..0000000000000000000000000000000000000000
--- a/tests/app/res/values-lo/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "ສາມາດຄົ້ນພົບໄດ້"
- "ເລີ່ມຕົ້ນສະແກນ"
- "ຢຸດສະແກນ"
- "ສະບາຍດີຜູ້ໃຫ້ບໍລິການ!"
- "ຜູ້ໃຫ້ບໍລິການ"
- "ຂໍ້ຄວາມຂອງຜູ້ໃຫ້ບໍລິການທີ່ສາມາດໃຊ້ ເພື່ອເລີ່ມການເຄື່ອນໄຫວທີ່ເລືອກໄດ້"
- "ສະບາຍດີຜູ້ຜະລິດ!"
- "ຜູ້ຜະລິດ"
- "ຂໍ້ຄວາມຂອງຜູ້ຜະລິດທີ່ສາມາດໃຊ້ເພື່ອເລີ່ມການເຄື່ອນໄຫວທີ່ເລືອກໄດ້"
-
diff --git a/tests/app/res/values-lt/strings.xml b/tests/app/res/values-lt/strings.xml
deleted file mode 100644
index a59099983044fedb78cca8721f9e18f4c9b04b89..0000000000000000000000000000000000000000
--- a/tests/app/res/values-lt/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Aptinkamas"
- "Pradėti nuskaitymą"
- "Sustabdyti nuskaitymą"
- "Sveiki, operatoriau!"
- "Operatorius"
- "Operatoriaus dominantis turinys, kurį galima naudoti norint pradėti pasirinktą veiklą"
- "Sveiki, gamintojau!"
- "Gamintojas"
- "Gamintojo dominantis turinys, kurį galima naudoti norint pradėti pasirinktą veiklą"
-
diff --git a/tests/app/res/values-lv/strings.xml b/tests/app/res/values-lv/strings.xml
deleted file mode 100644
index e28fe2a4b422d2575e94f8d92956f729bec3f13d..0000000000000000000000000000000000000000
--- a/tests/app/res/values-lv/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Uztverama"
- "Sākt skenēšanu"
- "Apturēt skenēšanu"
- "Esiet sveicināts, operator!"
- "Operators"
- "Operatora aizķere, ko var izmantot, lai startētu izvēlētu darbību"
- "Esiet sveicināts, ražotāj!"
- "Ražotājs"
- "Ražotāja aizķere, ko var izmantot, lai startētu izvēlētu darbību"
-
diff --git a/tests/app/res/values-mk/strings.xml b/tests/app/res/values-mk/strings.xml
deleted file mode 100644
index b6eca5411376565d0ecc0777861c5cb060dcb9d7..0000000000000000000000000000000000000000
--- a/tests/app/res/values-mk/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Достапен"
- "Започни скенирање"
- "Запри скенирање"
- "Здраво операторе!"
- "Оператор"
- "Кука на оператор што може да се употреби за да се започне активност по избор"
- "Здраво производителе!"
- "Производителот"
- "Кука на производител што може да се употреби за да се започне активност по избор"
-
diff --git a/tests/app/res/values-ml/strings.xml b/tests/app/res/values-ml/strings.xml
deleted file mode 100644
index e1aa334bbc7b2843a5493f35043f7e7749147ba6..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ml/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "കണ്ടെത്താനാകുന്നത്"
- "സ്കാൻ ചെയ്യാൻ ആരംഭിക്കുക"
- "സ്കാൻ ചെയ്യുന്നത് നിർത്തുക"
- "ഹലോ, ഓപ്പറേറ്റർ!"
- "ഓപ്പറേറ്റർ"
- "തിരഞ്ഞെടുക്കൽ പ്രവർത്തനം ആരംഭിക്കാൻ ഉപയോഗിക്കാവുന്ന ഓപ്പറേറ്റർ ഹുക്ക്"
- "ഹലോ, നിർമ്മാതാവെ!"
- "നിർമ്മാതാവ്"
- "തിരഞ്ഞെടുക്കൽ പ്രവർത്തനം ആരംഭിക്കാൻ ഉപയോഗിക്കാവുന്ന നിർമ്മാതാവിന്റെ ഹുക്ക്"
-
diff --git a/tests/app/res/values-mn/strings.xml b/tests/app/res/values-mn/strings.xml
deleted file mode 100644
index c2648267c1abcbb24381e1e45a176a1d641acf17..0000000000000000000000000000000000000000
--- a/tests/app/res/values-mn/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Харагдахуйц"
- "Сканийг эхлүүлэх"
- "Шинжлэхийг зогсоох"
- "Сайн байна уу, Оператор оо!"
- "Оператор"
- "Сонгох ажлыг эхлүүлэхэд ашиглаж болох үйлдвэрлэгчийн хэсэг"
- "Сайн байна уу, үйлдвэрлэгчид ээ!"
- "Үйлдвэрлэгч"
- "Сонгох ажлыг эхлүүлэхэд ашиглаж болох үйлдвэрлэгчийн хэсэг"
-
diff --git a/tests/app/res/values-mr/strings.xml b/tests/app/res/values-mr/strings.xml
deleted file mode 100644
index be6511b446f0ca03a3794e938858e3f370abe4df..0000000000000000000000000000000000000000
--- a/tests/app/res/values-mr/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "शोधसुलभ"
- "स्कॅन सुरू करा"
- "स्कॅन थांबवा"
- "हॅलो ऑपरेटर!"
- "ऑपरेटर"
- "पसंतीची अॅक्टिव्हिटी सुरू करण्यासाठी वापरले जाऊ शकणारे अॉपरेटर हूक"
- "हॅलो निर्माता!"
- "निर्माता"
- "पसंतीची अॅक्टिव्हिटी सुरू करण्यासाठी वापरले जाऊ शकणारे निर्माता हूक"
-
diff --git a/tests/app/res/values-ms/strings.xml b/tests/app/res/values-ms/strings.xml
deleted file mode 100644
index 6d19101e486f4fc50311ff5e866f791ffa4e24a7..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ms/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Boleh ditemui"
- "Mulakan pengimbasan"
- "Hentikan pengimbasan"
- "Helo Pembawa!"
- "Pembawa"
- "Tarikan pembawa yang dapat digunakan untuk memulakan aktiviti pilihan"
- "Helo Pengeluar!"
- "Pengeluar"
- "Tarikan pengeluar yang dapat digunakan untuk memulakan aktiviti pilihan"
-
diff --git a/tests/app/res/values-my/strings.xml b/tests/app/res/values-my/strings.xml
deleted file mode 100644
index 45b090d74b289be07507fd3cd03308ce2223f5d3..0000000000000000000000000000000000000000
--- a/tests/app/res/values-my/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "ရှာတွေ့နိုင်သော"
- "ဖတ်ခြင်းစပါ"
- "ဖတ်ခြင်းရပ်ပါ"
- "မင်္ဂလာပါ အော်ပရေတာ။"
- "အော်ပရေတာ"
- "ရွေးချယ်မှု စတင်အသုံးပြုနိုင်မည့် အော်ပရေတာမှ စိတ်ဝင်စားစရာအကြောင်းအရာ"
- "မင်္လာပါ ထုတ်လုပ်သူ။"
- "ထုတ်လုပ်သူ"
- "ရွေးချယ်မှုကို စတင်အသုံးပြုနိုင်မည့် ထုတ်လုပ်သူမှ စိတ်ဝင်စားစရာအကြောင်းအရာ"
-
diff --git a/tests/app/res/values-nb/strings.xml b/tests/app/res/values-nb/strings.xml
deleted file mode 100644
index dbc3ec845c1eb7c9e4649fc19570b062019a910b..0000000000000000000000000000000000000000
--- a/tests/app/res/values-nb/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Synlig"
- "Start skanning"
- "Stopp skanning"
- "Hei, operatør!"
- "Operatør"
- "Operatøraktivering som kan brukes til å starte en ønsket aktivitet"
- "Hei, produsent!"
- "Produsent"
- "Produsentaktivering som kan brukes til å starte en ønsket aktivitet"
-
diff --git a/tests/app/res/values-ne/strings.xml b/tests/app/res/values-ne/strings.xml
deleted file mode 100644
index 9ec6fd3b2746f5a295dad0aad626e411c80fdd68..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ne/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "पत्ता लगाउनयोग्य"
- "स्क्यान सुरु गर्नुहोस्"
- "स्क्यान बन्द गर्नुहोस्"
- "नमस्कार अपरेटर!"
- "अपरेटर"
- "अपरेटर हुक जसलाई रोजाइको गतिविधि सुरु गर्न प्रयोग गर्न सकिन्छ"
- "नमस्कार निर्माता!"
- "निर्माता"
- "निर्माता हुक जसलाई रोजाइको गतिविधि सुरु गर्न प्रयोग गर्न सकिन्छ"
-
diff --git a/tests/app/res/values-nl/strings.xml b/tests/app/res/values-nl/strings.xml
deleted file mode 100644
index 384670e35db8b4efaabc4722fe06ccb2702fa312..0000000000000000000000000000000000000000
--- a/tests/app/res/values-nl/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Vindbaar"
- "Scan starten"
- "Scan stoppen"
- "Hallo operator!"
- "Operator"
- "Hook van operator die kan worden gebruikt om de gewenste activiteit te starten"
- "Hallo fabrikant!"
- "Fabrikant"
- "Hook van fabrikant die kan worden gebruikt om de gewenste activiteit te starten"
-
diff --git a/tests/app/res/values-pa/strings.xml b/tests/app/res/values-pa/strings.xml
deleted file mode 100644
index 3604287d4705629e3c8dc11d9f77db08e57aaaf8..0000000000000000000000000000000000000000
--- a/tests/app/res/values-pa/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "ਖੋਜਣਯੋਗ"
- "ਸਕੈਨ ਚਾਲੂ ਕਰੋ"
- "ਸਕੈਨ ਰੋਕੋ"
- "ਹੈਲੋ ਓਪਰੇਟਰ!"
- "ਓਪਰੇਟਰ"
- "ਓਪਰੇਟਰ ਹੁੱਕ ਜਿਸਦੀ ਵਰਤੋਂ ਪਸੰਦ ਦੀ ਸਰਗਰਮੀ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ"
- "ਹੈਲੋ ਨਿਰਮਾਤਾ!"
- "ਨਿਰਮਾਤਾ"
- "ਨਿਰਮਾਤਾ ਹੁੱਕ ਜਿਸ ਦੀ ਵਰਤੋਂ ਪਸੰਦ ਦੀ ਸਰਗਰਮੀ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ"
-
diff --git a/tests/app/res/values-pl/strings.xml b/tests/app/res/values-pl/strings.xml
deleted file mode 100644
index 3d6427480d5dca981276d5af511688f8bae94c46..0000000000000000000000000000000000000000
--- a/tests/app/res/values-pl/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Wykrywalny"
- "Rozpocznij skanowanie"
- "Zatrzymaj skanowanie"
- "Witaj operatorze"
- "Operator"
- "Interfejs operatora umożliwiający uruchomienie wybranego działania"
- "Witaj producencie"
- "Producent"
- "Interfejs producenta umożliwiający uruchomienie wybranego działania"
-
diff --git a/tests/app/res/values-pt-rBR/strings.xml b/tests/app/res/values-pt-rBR/strings.xml
deleted file mode 100644
index 0f850500dbe571840d923344964db2a679919593..0000000000000000000000000000000000000000
--- a/tests/app/res/values-pt-rBR/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Detectável"
- "Iniciar verificação"
- "Parar verificação"
- "Olá, operador."
- "Operador"
- "Ferramenta do operador que pode ser usada para iniciar a atividade que você escolher"
- "Olá, fabricante."
- "Fabricante"
- "Ferramenta do fabricante que pode ser usada para iniciar a atividade que você escolher"
-
diff --git a/tests/app/res/values-pt-rPT/strings.xml b/tests/app/res/values-pt-rPT/strings.xml
deleted file mode 100644
index e94d5d0175abc5b455fe0995f8cd65c1a59a5967..0000000000000000000000000000000000000000
--- a/tests/app/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Detetável"
- "Iniciar análise"
- "Parar análise"
- "Olá, operador!"
- "Operador"
- "Símbolo do operador que pode ser utilizado para iniciar uma atividade à escolha"
- "Olá, fabricante!"
- "Fabricante"
- "Símbolo do fabricante que pode ser utilizado para iniciar uma atividade à escolha"
-
diff --git a/tests/app/res/values-pt/strings.xml b/tests/app/res/values-pt/strings.xml
deleted file mode 100644
index 0f850500dbe571840d923344964db2a679919593..0000000000000000000000000000000000000000
--- a/tests/app/res/values-pt/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Detectável"
- "Iniciar verificação"
- "Parar verificação"
- "Olá, operador."
- "Operador"
- "Ferramenta do operador que pode ser usada para iniciar a atividade que você escolher"
- "Olá, fabricante."
- "Fabricante"
- "Ferramenta do fabricante que pode ser usada para iniciar a atividade que você escolher"
-
diff --git a/tests/app/res/values-ro/strings.xml b/tests/app/res/values-ro/strings.xml
deleted file mode 100644
index a97dd140402b7aa38a25ac750ea507c39fd54ef5..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ro/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Detectabil"
- "Începeți scanarea"
- "Opriți scanarea"
- "Stimate operator!"
- "Operator"
- "Mesaj pentru operator, care poate fi utilizat pentru a începe activitatea dorită"
- "Stimate producător!"
- "Producător"
- "Mesaj pentru producător, care poate fi utilizat pentru a începe activitatea dorită"
-
diff --git a/tests/app/res/values-ru/strings.xml b/tests/app/res/values-ru/strings.xml
deleted file mode 100644
index d5c4d0290def5d8e8ad35862d8460a78712b2e85..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ru/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Видимость"
- "Начать поиск"
- "Остановить поиск"
- "Здравствуйте!"
- "Оператор"
- "Уловка оператора, побуждающая к совершению действия"
- "Здравствуйте!"
- "Производитель"
- "Уловка производителя, побуждающая к совершению действия"
-
diff --git a/tests/app/res/values-si/strings.xml b/tests/app/res/values-si/strings.xml
deleted file mode 100644
index 04c6ec2ac56afdcdc0dc73fa2acc90dfe3296030..0000000000000000000000000000000000000000
--- a/tests/app/res/values-si/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "සොයා ගත හැකි"
- "ස්කෑන් කිරීම අරඹන්න"
- "ස්කෑන් කිරීම නවත්වන්න"
- "ආයුබෝවන් ක්රියාකරු!"
- "ක්රියාකරු"
- "කැමැති ක්රියාවක් ඇරඹීමට භාවිත කළ හැකි මෙහෙයුම් අංශය"
- "ආයුබෝවන් නිෂ්පාදක!"
- "නිෂ්පාදකයා"
- "අවශ්ය ක්රියාකාරකමක් කිරීමට භාවිත කළ හැකි නිෂ්පාදක අංශය"
-
diff --git a/tests/app/res/values-sk/strings.xml b/tests/app/res/values-sk/strings.xml
deleted file mode 100644
index 53c2a785c1a2b2f5f19708d5c53a0ad46e2ebacf..0000000000000000000000000000000000000000
--- a/tests/app/res/values-sk/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Viditeľné"
- "Spustiť vyhľadávanie"
- "Zastaviť vyhľadávanie"
- "Dobrý deň, operátor!"
- "Operátor"
- "Háčik operátora, ktorý je možné použiť na spustenie vybratej činnosti"
- "Dobrý deň, výrobca!"
- "Výrobca"
- "Háčik výrobcu, ktorý je možné použiť na spustenie vybratej činnosti"
-
diff --git a/tests/app/res/values-sl/strings.xml b/tests/app/res/values-sl/strings.xml
deleted file mode 100644
index da186eb640c9e3b750e7ac263517fafcfe7e0144..0000000000000000000000000000000000000000
--- a/tests/app/res/values-sl/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Vidno"
- "Začni iskanje"
- "Ustavi iskanje"
- "Živijo, operater!"
- "Operater"
- "Priključitvena točka za operaterja, ki jo je mogoče uporabiti za novo dejavnost"
- "Živijo, proizvajalec!"
- "Proizvajalec"
- "Priključitvena točka za proizvajalca, ki jo je mogoče uporabiti za poljubno dejavnost"
-
diff --git a/tests/app/res/values-sq/strings.xml b/tests/app/res/values-sq/strings.xml
deleted file mode 100644
index 7de008171d515bb5b8b0f86489f8caee16e4f029..0000000000000000000000000000000000000000
--- a/tests/app/res/values-sq/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "I zbulueshëm"
- "Nis skanimin"
- "Ndalo skanimin"
- "Përshëndetje operator!"
- "Operatori"
- "Grepi i operatorit që mund të përdoret për të filluar aktivitetin e zgjedhur"
- "Përshëndetje prodhues!"
- "Prodhuesi"
- "Grepi i prodhuesit që mund të përdoret për të nisur aktivitetin e zgjedhur"
-
diff --git a/tests/app/res/values-sr/strings.xml b/tests/app/res/values-sr/strings.xml
deleted file mode 100644
index dd8b7d937a90dd63a2b5c2bc8fe209693733f05b..0000000000000000000000000000000000000000
--- a/tests/app/res/values-sr/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Видљиво"
- "Покрени скенирање"
- "Заустави скенирање"
- "Здраво, оператеру!"
- "Мобилни оператер"
- "Мамац за оператера који може да се користи за покретање жељене активности"
- "Здраво, произвођачу!"
- "Произвођач"
- "Мамац за произвођача који може да се користи за покретање жељене активности"
-
diff --git a/tests/app/res/values-sv/strings.xml b/tests/app/res/values-sv/strings.xml
deleted file mode 100644
index e8f8d53ff5c2f53e3d98a127f6e02e6c4a4e6ab2..0000000000000000000000000000000000000000
--- a/tests/app/res/values-sv/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Synlig"
- "Starta sökning"
- "Stoppa sökningen"
- "Hej operatör!"
- "Operatör"
- "Operatörsfunktion som kan användas för att starta en valfri aktivitet"
- "Hej tillverkare!"
- "Tillverkare"
- "Tillverkarfunktion som kan användas för att starta en valfri aktivitet"
-
diff --git a/tests/app/res/values-sw/strings.xml b/tests/app/res/values-sw/strings.xml
deleted file mode 100644
index bd5a126d6974cea39bb9ea69a7868ff7b73a859e..0000000000000000000000000000000000000000
--- a/tests/app/res/values-sw/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Inaweza kutambulika"
- "Anza kuchanganua"
- "Komesha kuchanganua"
- "Hujambo Mwendeshaji!"
- "Kiendeshaji"
- "Kishikilio cha mtengenezaji ambacho inaweza kutumiwa kwa kuanza shughuli ya chaguo"
- "Hujambo Mtengenezaji!"
- "Mtengenezaji"
- "Kishikilio cha mtengenezaji ambacho kinaweza kutumiwa kwa kuanza shughuli ya chaguo"
-
diff --git a/tests/app/res/values-ta/strings.xml b/tests/app/res/values-ta/strings.xml
deleted file mode 100644
index 3a80158093351f7d696b1dd4f2c732769d53e3a3..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ta/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "கண்டறியப்படலாம்"
- "ஸ்கேனைத் தொடங்கு"
- "ஸ்கேனை நிறுத்து"
- "ஹலோ ஆபரேட்டரே!"
- "ஆபரேட்டர்"
- "விரும்பிய செயல்பாட்டைத் தொடங்குவதற்குப் பயன்படுத்தக் கூடிய ஆபரேட்டர் பொறி"
- "ஹலோ உற்பத்தியாளரே!"
- "உற்பத்தியாளர்"
- "விரும்பிய செயல்பாட்டைத் தொடங்குவதற்குப் பயன்படுத்தக் கூடிய உற்பத்தியாளர் பொறி"
-
diff --git a/tests/app/res/values-te/strings.xml b/tests/app/res/values-te/strings.xml
deleted file mode 100644
index 1ffb2b745260b17ef14e5776fbf7a799f97bd1f0..0000000000000000000000000000000000000000
--- a/tests/app/res/values-te/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "కనుగొనదగినది"
- "స్కాన్ని ప్రారంభించండి"
- "స్కాన్ని ఆపివేయండి"
- "హలో ఆపరేటర్!"
- "ఆపరేటర్"
- "ఎంచుకున్న కార్యాచరణను ప్రారంభించడానికి ఉపయోగించగల దాన్ని ఆపరేటర్ నియంత్రించగలరు"
- "హలో తయారీదారు!"
- "తయారీదారు"
- "ఎంచుకున్న కార్యాచరణను ప్రారంభించడానికి ఉపయోగించగల దాన్ని తయారీదారు నియంత్రించగలరు"
-
diff --git a/tests/app/res/values-th/strings.xml b/tests/app/res/values-th/strings.xml
deleted file mode 100644
index 249d0f72b65a9f9a2b1cbf6dd047328de00f9a77..0000000000000000000000000000000000000000
--- a/tests/app/res/values-th/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "ค้นพบได้"
- "เริ่มสแกน"
- "หยุดสแกน"
- "สวัสดี โอเปอเรเตอร์"
- "โอเปอเรเตอร์"
- "ข้อความของโอเปอเรเตอร์ที่สามารถใช้เริ่มกิจกรรมที่เลือกได้"
- "สวัสดี ผู้ผลิต"
- "ผู้ผลิต"
- "ข้อความของผู้ผลิตที่สามารถใช้เริ่มกิจกรรมที่เลือกได้"
-
diff --git a/tests/app/res/values-tl/strings.xml b/tests/app/res/values-tl/strings.xml
deleted file mode 100644
index c64985ebea4dfbddd53dc79af90fd055d3260950..0000000000000000000000000000000000000000
--- a/tests/app/res/values-tl/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Katuklas-tuklas"
- "Simulan ang pag-ii-scan"
- "Ihinto ang pag-ii-scan"
- "Kumusta Operator!"
- "Operator"
- "Hook ng operator na maaaring magamit upang simulan ang napiling aktibidad"
- "Kumusta Manufacturer!"
- "Manufacturer"
- "Hook ng manufacturer na maaaring magamit upang simulan ang napiling aktibidad"
-
diff --git a/tests/app/res/values-tr/strings.xml b/tests/app/res/values-tr/strings.xml
deleted file mode 100644
index 7c9adffa8fea6d4ebe1dbde5a6844922f935ca14..0000000000000000000000000000000000000000
--- a/tests/app/res/values-tr/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Keşfedilebilir"
- "Taramayı başlat"
- "Taramayı durdur"
- "Merhaba Operatör!"
- "Operatör"
- "Seçilen etkinliğin başlatılmasında kullanılabilen operatör kancası"
- "Merhaba Üretici!"
- "Üretici"
- "Seçilen etkinliğin başlatılmasında kullanılabilen üretici kancası"
-
diff --git a/tests/app/res/values-uk/strings.xml b/tests/app/res/values-uk/strings.xml
deleted file mode 100644
index 30700d8e6fbc82bd57dc536ef1cf62d57564eba6..0000000000000000000000000000000000000000
--- a/tests/app/res/values-uk/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Видимий"
- "Почати сканування"
- "Припинити сканування"
- "Вітаємо, операторе!"
- "Оператор"
- "Обробник оператора, за допомогою якого можна вибирати"
- "Вітаємо, виробнику!"
- "Виробник"
- "Обробник виробника, за допомогою якого можна вибирати"
-
diff --git a/tests/app/res/values-ur/strings.xml b/tests/app/res/values-ur/strings.xml
deleted file mode 100644
index 34e1e3e5037e0b58f044e8bbaf28eba6ef515e59..0000000000000000000000000000000000000000
--- a/tests/app/res/values-ur/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "قابل دریافت"
- "اسکین شروع کریں"
- "اسکین روکیں"
- "ہیلو آپریٹر!"
- "آپریٹر"
- "آپریٹر ہک جس کا استعمال پسند کی سرگرمی شروع کرنے کیلئے کیا جا سکتا ہے"
- "ہیلو مینوفیکچرر!"
- "مینوفیکچرر"
- "مینوفیکچرر ہک جس کا استعمال پسند کی سرگرمی شروع کرنے کیلئے کیا جا سکتا ہے"
-
diff --git a/tests/app/res/values-uz/strings.xml b/tests/app/res/values-uz/strings.xml
deleted file mode 100644
index 5e8659167da062e2f65fd6ec6435c76d72cf1dce..0000000000000000000000000000000000000000
--- a/tests/app/res/values-uz/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Ko‘rinadi"
- "Qidiruvni boshlash"
- "Qidiruvni to‘xtatish"
- "Salom, operator!"
- "Operator"
- "Operatorning tanlangan amalni ishga tushiruvchi hiylasi"
- "Salom, ishlab chiqaruvchi!"
- "Ishlab chiqaruvchi"
- "Ishlab chiqaruvchining tanlangan amalni ishga tushiruvchi hiylasi"
-
diff --git a/tests/app/res/values-vi/strings.xml b/tests/app/res/values-vi/strings.xml
deleted file mode 100644
index a060dc1141772298a6e4ebc8d5ec3d5d59131762..0000000000000000000000000000000000000000
--- a/tests/app/res/values-vi/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Có thể phát hiện"
- "Bắt đầu quét"
- "Dừng quét"
- "Xin chào Nhà cung cấp dịch vụ!"
- "Nhà cung cấp dịch vụ"
- "Có thể sử dụng mác của nhà cung cấp dịch vụ để bắt đầu hoạt động đã chọn"
- "Xin chào Nhà sản xuất!"
- "Nhà sản xuất"
- "Có thể sử dụng mác của nhà sản xuất để bắt đầu hoạt động đã chọn"
-
diff --git a/tests/app/res/values-zh-rCN/strings.xml b/tests/app/res/values-zh-rCN/strings.xml
deleted file mode 100644
index de1e8a8c7fe3d34c9252ad790fede11a4c79556c..0000000000000000000000000000000000000000
--- a/tests/app/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "可检测到"
- "开始扫描"
- "停止扫描"
- "运营商,您好!"
- "运营商"
- "可用于启动所选活动的运营商引子"
- "制造商,您好!"
- "制造商"
- "可用于启动所选 Activity 的制造商挂钩"
-
diff --git a/tests/app/res/values-zh-rHK/strings.xml b/tests/app/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 55170070b6a02dabed80975e55fdbeec184c88be..0000000000000000000000000000000000000000
--- a/tests/app/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "可供偵測"
- "開始掃描"
- "停止掃描"
- "流動網絡供應商您好!"
- "流動網絡供應商"
- "可用來啟動所選活動的流動網絡供應商勾點"
- "製造商您好!"
- "製造商"
- "可用來啟動所選活動的製造商勾點"
-
diff --git a/tests/app/res/values-zh-rTW/strings.xml b/tests/app/res/values-zh-rTW/strings.xml
deleted file mode 100644
index d3a727919ef29bcd4d82945746a90dc55088e06a..0000000000000000000000000000000000000000
--- a/tests/app/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "可供偵測"
- "開始掃描"
- "停止掃描"
- "電信業者你好!"
- "電信業者"
- "可用來啟動所選活動的電信業者勾點"
- "製造商你好!"
- "製造商"
- "可用來啟動所選活動的製造商勾點"
-
diff --git a/tests/app/res/values-zu/strings.xml b/tests/app/res/values-zu/strings.xml
deleted file mode 100644
index 217fe9d203ec03a2b802560d3d7c8209208b317d..0000000000000000000000000000000000000000
--- a/tests/app/res/values-zu/strings.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- "Iyatholakala"
- "Qala ukuskena"
- "Misa ukuskena"
- "Sawubona Opheretha!"
- "Opharetha"
- "Ihhuku ye-opharetha ingasetshenziselwa ukuqala umsebenzi owuthandayo"
- "Sawubona Mkhiqizi!"
- "Umkhiqizi"
- "Ihhuku yomkhiqizi engasetshenziselwa ukuqala umsebenzi owuthandayo"
-
diff --git a/tests/app/res/values/strings.xml b/tests/app/res/values/strings.xml
deleted file mode 100644
index 9fb98f90284c28ef8e7c82be64588871aabae9fb..0000000000000000000000000000000000000000
--- a/tests/app/res/values/strings.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
- Enable
- Discoverable
- Start scan
- Stop scan
- Hello Operator!
- Operator
- Operator hook that can be used to start activity of choice
- Hello Manufacturer!
- Manufacturer
- Manufacturer hook that can be used to start activity of choice
-
diff --git a/tests/app/src/com/android/settings/CreateShortcutTest.java b/tests/app/src/com/android/settings/CreateShortcutTest.java
deleted file mode 100644
index 4ae9bd7997c61676a1b2695832444bd531731390..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/CreateShortcutTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Instrumentation;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.ContextWrapper;
-import android.content.Intent;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ShortcutInfo;
-import android.content.pm.ShortcutManager;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Tests for {@link CreateShortcutTest}
- *
- m SettingsTests &&
- adb install \
- -r -g ${ANDROID_PRODUCT_OUT}/data/app/SettingsTests/SettingsTests.apk &&
- adb shell am instrument -e class com.android.settings.CreateShortcutTest \
- -w com.android.settings.tests/android.support.test.runner.AndroidJUnitRunner
- */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class CreateShortcutTest {
-
- private static final String SHORTCUT_ID_PREFIX = CreateShortcut.SHORTCUT_ID_PREFIX;
-
- private Instrumentation mInstrumentation;
- private Context mContext;
-
- @Mock ShortcutManager mShortcutManager;
- @Captor ArgumentCaptor> mListCaptor;
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mContext = mInstrumentation.getTargetContext();
- }
-
- @Test
- public void test_layoutDoesNotHaveCancelButton() {
- mInstrumentation.startActivitySync(new Intent(Intent.ACTION_CREATE_SHORTCUT)
- .setClassName(mContext, CreateShortcut.class.getName()));
- onView(withText(R.string.cancel)).check(doesNotExist());
- }
-
- @Test
- public void createResultIntent() {
- CreateShortcut orgActivity = (CreateShortcut) mInstrumentation.startActivitySync(
- new Intent(Intent.ACTION_CREATE_SHORTCUT)
- .setClassName(mContext, CreateShortcut.class.getName()));
- CreateShortcut activity = spy(orgActivity);
- doReturn(mShortcutManager).when(activity).getSystemService(eq(Context.SHORTCUT_SERVICE));
-
- when(mShortcutManager.createShortcutResultIntent(any(ShortcutInfo.class)))
- .thenReturn(new Intent().putExtra("d1", "d2"));
-
- Intent intent = CreateShortcut.getBaseIntent()
- .setClass(activity, Settings.ManageApplicationsActivity.class);
- ResolveInfo ri = activity.getPackageManager().resolveActivity(intent, 0);
- Intent result = activity.createResultIntent(intent, ri, "dummy");
- assertEquals("d2", result.getStringExtra("d1"));
- assertNotNull(result.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT));
-
- ArgumentCaptor infoCaptor = ArgumentCaptor.forClass(ShortcutInfo.class);
- verify(mShortcutManager, times(1))
- .createShortcutResultIntent(infoCaptor.capture());
- String expectedId = SHORTCUT_ID_PREFIX + intent.getComponent().flattenToShortString();
- assertEquals(expectedId, infoCaptor.getValue().getId());
- }
-
- @Test
- public void shortcutsUpdateTask() {
- mContext = spy(new ContextWrapper(mInstrumentation.getTargetContext()));
- doReturn(mShortcutManager).when(mContext).getSystemService(eq(Context.SHORTCUT_SERVICE));
-
- List pinnedShortcuts = Arrays.asList(
- makeShortcut("d1"), makeShortcut("d2"),
- makeShortcut(Settings.ManageApplicationsActivity.class),
- makeShortcut("d3"),
- makeShortcut(Settings.SoundSettingsActivity.class));
- when(mShortcutManager.getPinnedShortcuts()).thenReturn(pinnedShortcuts);
- new CreateShortcut.ShortcutsUpdateTask(mContext).doInBackground();
-
- verify(mShortcutManager, times(1)).updateShortcuts(mListCaptor.capture());
-
- List updates = mListCaptor.getValue();
- assertEquals(2, updates.size());
- assertEquals(pinnedShortcuts.get(2).getId(), updates.get(0).getId());
- assertEquals(pinnedShortcuts.get(4).getId(), updates.get(1).getId());
- }
-
- private ShortcutInfo makeShortcut(Class> className) {
- ComponentName cn = new ComponentName(mContext, className);
- return makeShortcut(SHORTCUT_ID_PREFIX + cn.flattenToShortString());
- }
-
- private ShortcutInfo makeShortcut(String id) {
- return new ShortcutInfo.Builder(mContext, id).build();
- }
-}
diff --git a/tests/app/src/com/android/settings/DisplaySettingsTest.java b/tests/app/src/com/android/settings/DisplaySettingsTest.java
deleted file mode 100644
index 888b7fdd2401a38d9a153697c90e9b56f74af575..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/DisplaySettingsTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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
- */
-
-package com.android.settings;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.UiDevice;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class DisplaySettingsTest {
-
- private Instrumentation mInstrumentation;
- private Context mContext;
- private UiDevice mDevice;
-
- @Before
- public void setUp() {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mContext = mInstrumentation.getTargetContext();
- mDevice = UiDevice.getInstance(mInstrumentation);
- }
-
- @Test
- public void launchBrightnessLevel_shouldNotCrash() {
- mInstrumentation.startActivitySync(
- new Intent(mContext, DisplaySettings.class));
- onView(withText(mContext.getString(R.string.brightness))).perform(click());
- // should not crash
- mDevice.pressBack(); // dismiss the brightness dialog
- }
-}
diff --git a/tests/app/src/com/android/settings/EncryptionInterstitialTest.java b/tests/app/src/com/android/settings/EncryptionInterstitialTest.java
deleted file mode 100644
index eb61b00958e47ff4c191ce17461a7164d8736799..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/EncryptionInterstitialTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.app.Instrumentation.ActivityMonitor;
-import android.app.Instrumentation.ActivityResult;
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.MediumTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@MediumTest
-public class EncryptionInterstitialTest {
-
- private Instrumentation mInstrumentation;
- private Context mContext;
- private TestActivityMonitor mActivityMonitor;
-
- @Before
- public void setUp() {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mContext = mInstrumentation.getTargetContext();
- mActivityMonitor = new TestActivityMonitor();
- mInstrumentation.addMonitor(mActivityMonitor);
- }
-
- @After
- public void tearDown() {
- mInstrumentation.removeMonitor(mActivityMonitor);
- }
-
- @Test
- public void clickYes_shouldRequirePassword() {
- mInstrumentation.startActivitySync(
- new Intent(mContext, EncryptionInterstitial.class)
- .putExtra("extra_unlock_method_intent", new Intent("test.unlock.intent")));
- onView(withId(R.id.encrypt_require_password)).perform(click());
-
- mActivityMonitor.waitForActivityWithTimeout(1000);
- assertEquals(1, mActivityMonitor.getHits());
-
- assertTrue(mActivityMonitor.mMatchedIntent.getBooleanExtra(
- EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false));
- }
-
- @Test
- public void clickNo_shouldNotRequirePassword() {
- mInstrumentation.startActivitySync(
- new Intent(mContext, EncryptionInterstitial.class)
- .putExtra("extra_unlock_method_intent", new Intent("test.unlock.intent")));
- onView(withId(R.id.encrypt_dont_require_password)).perform(click());
-
- mActivityMonitor.waitForActivityWithTimeout(1000);
- assertEquals(1, mActivityMonitor.getHits());
-
- assertFalse(mActivityMonitor.mMatchedIntent.getBooleanExtra(
- EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true));
- }
-
- private static class TestActivityMonitor extends ActivityMonitor {
-
- Intent mMatchedIntent = null;
-
- @Override
- public ActivityResult onStartActivity(Intent intent) {
- if ("test.unlock.intent".equals(intent.getAction())) {
- mMatchedIntent = intent;
- return new ActivityResult(Activity.RESULT_OK, null);
- }
- return null;
- }
- }
-}
diff --git a/tests/app/src/com/android/settings/ManagedAccessSettingsLowRamTest.java b/tests/app/src/com/android/settings/ManagedAccessSettingsLowRamTest.java
deleted file mode 100644
index 95c1dcf8839f7fedee1da267adfefa721ee018f1..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/ManagedAccessSettingsLowRamTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import android.app.ActivityManager;
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class ManagedAccessSettingsLowRamTest {
-
- private Instrumentation mInstrumentation;
- private Context mTargetContext;
-
- @Before
- public void setUp() {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mTargetContext = mInstrumentation.getTargetContext();
- }
-
- @Test
- public void testManagedAccessOptionsVisibility() throws Exception {
- mInstrumentation.startActivitySync(new Intent(mTargetContext,
- com.android.settings.Settings.SpecialAccessSettingsActivity.class));
-
- String[] managedServiceLabels = new String[] {"Do Not Disturb access",
- "VR helper services", "Notification access", "Picture-in-picture"};
- for (String label : managedServiceLabels) {
- if (ActivityManager.isLowRamDeviceStatic()) {
- onView(withText(label)).check(doesNotExist());
- } else {
- onView(withText(label)).check(matches(isDisplayed()));
- }
- }
- }
-
- @Test
- public void launchNotificationSetting_onlyWorksIfNotLowRam() {
- final Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
-
- mInstrumentation.startActivitySync(intent);
-
- final String label = "This feature is not available on this device";
- if (ActivityManager.isLowRamDeviceStatic()) {
- onView(withText(label)).check(matches(isDisplayed()));
- } else {
- onView(withText(label)).check(doesNotExist());
- }
- }
-
- @Test
- public void launchDndSetting_onlyWorksIfNotLowRam() {
- final Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
-
- mInstrumentation.startActivitySync(intent);
-
- final String label = "This feature is not available on this device";
- if (ActivityManager.isLowRamDeviceStatic()) {
- onView(withText(label)).check(matches(isDisplayed()));
- } else {
- onView(withText(label)).check(doesNotExist());
- }
- }
-
- @Test
- public void launchVrSetting_onlyWorksIfNotLowRam() {
- final Intent intent = new Intent(Settings.ACTION_VR_LISTENER_SETTINGS);
-
- mInstrumentation.startActivitySync(intent);
-
- final String label = "This feature is not available on this device";
- if (ActivityManager.isLowRamDeviceStatic()) {
- onView(withText(label)).check(matches(isDisplayed()));
- } else {
- onView(withText(label)).check(doesNotExist());
- }
- }
-
- @Test
- public void launchPictureInPictureSetting_onlyWorksIfNotLowRam() {
- final Intent intent = new Intent(Settings.ACTION_PICTURE_IN_PICTURE_SETTINGS);
-
- mInstrumentation.startActivitySync(intent);
-
- final String label = "This feature is not available on this device";
- if (ActivityManager.isLowRamDeviceStatic()) {
- onView(withText(label)).check(matches(isDisplayed()));
- } else {
- onView(withText(label)).check(doesNotExist());
- }
- }
-}
diff --git a/tests/app/src/com/android/settings/SettingsHookTests.java b/tests/app/src/com/android/settings/SettingsHookTests.java
deleted file mode 100644
index 4dfd4846e50270c01e7fbf48ab836b6032867798..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/SettingsHookTests.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2010 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.settings;
-
-import com.android.settings.Settings;
-import com.android.settings.tests.Manufacturer;
-import com.android.settings.tests.Operator;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.test.ActivityInstrumentationTestCase2;
-
-import java.util.List;
-
-/**
- * Tests for the Settings operator/manufacturer hook.
- *
- * Running all tests:
- *
- * make SettingsTests
- * adb push SettingsTests.apk /system/app/SettingsTests.apk
- * adb shell am instrument \
- * -w com.android.settings.tests/android.test.InstrumentationTestRunner
- */
-public class SettingsHookTests extends ActivityInstrumentationTestCase2 {
-
- private static final String PACKAGE_NAME = "com.android.settings.tests";
-
- private static final String KEY_SETTINGS_ROOT = "parent";
- private static final String KEY_SETTINGS_OPERATOR = "operator_settings";
- private static final String KEY_SETTINGS_MANUFACTURER = "manufacturer_settings";
-
- private static final String INTENT_OPERATOR_HOOK = "com.android.settings.OPERATOR_APPLICATION_SETTING";
- private static final String INTENT_MANUFACTURER_HOOK = "com.android.settings.MANUFACTURER_APPLICATION_SETTING";
-
- private Settings mSettings;
-
- public SettingsHookTests() {
- super("com.android.settings", Settings.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mSettings = getActivity();
- }
-
- /**
- * Test that the operator/manufacturer settings hook test application is
- * available and that it's installed in the device's system image.
- */
- public void testSettingsHookTestAppAvailable() throws Exception {
- Context context = mSettings.getApplicationContext();
- PackageManager pm = context.getPackageManager();
- ApplicationInfo applicationInfo = pm.getApplicationInfo(PACKAGE_NAME, 0);
- assertTrue((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
- }
-
- /**
- * Test that the operator test activity has registered an intent-filter for
- * an action named 'android.settings.OPERATOR_APPLICATION_SETTING'.
- */
- public void testOperatorIntentFilter() {
- boolean result = false;
- Context context = mSettings.getApplicationContext();
- PackageManager pm = context.getPackageManager();
- Intent intent = new Intent(INTENT_OPERATOR_HOOK);
- List list = pm.queryIntentActivities(intent, 0);
- for (ResolveInfo resolveInfo : list) {
- if (resolveInfo.activityInfo.packageName.equals(PACKAGE_NAME)) {
- result = true;
- }
- }
- assertTrue("Intent-filter not found", result);
- }
-
- /**
- * Test that the manufacturer test activity has registered an intent-filter
- * for an action named 'android.settings.MANUFACTURER_APPLICATION_SETTING'.
- */
- public void testManufacturerIntentFilter() {
- boolean result = false;
- Context context = mSettings.getApplicationContext();
- PackageManager pm = context.getPackageManager();
- Intent intent = new Intent(INTENT_MANUFACTURER_HOOK);
- List list = pm.queryIntentActivities(intent, 0);
- for (ResolveInfo resolveInfo : list) {
- if (resolveInfo.activityInfo.packageName.equals(PACKAGE_NAME)) {
- result = true;
- }
- }
- assertTrue("Intent-filter not found", result);
- }
-
- /**
- * Test that the operator preference is available in the Settings
- * application.
- */
- public void testOperatorPreferenceAvailable() {
-// TODO: fix this test case to work with fragments
-// PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
-// Preference operatorPreference = root.findPreference(KEY_SETTINGS_OPERATOR);
-// assertNotNull(operatorPreference);
- }
-
- /**
- * Test that the manufacturer preference is available in the Settings
- * application.
- */
- public void testManufacturerPreferenceAvailable() {
-// TODO: fix this test case to work with fragments
-// PreferenceGroup root = (PreferenceGroup)mSettings.findPreference(KEY_SETTINGS_ROOT);
-// Preference manufacturerHook = root.findPreference(KEY_SETTINGS_MANUFACTURER);
-// assertNotNull(manufacturerHook);
- }
-
-}
diff --git a/tests/app/src/com/android/settings/SettingsPreferenceFragmentTest.java b/tests/app/src/com/android/settings/SettingsPreferenceFragmentTest.java
deleted file mode 100644
index 30fc124dfa62e2d18ea4e99370e960d7d394a27e..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/SettingsPreferenceFragmentTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.android.settings;
-
-import android.content.Intent;
-import android.content.Context;
-
-import android.app.Instrumentation;
-import android.os.Bundle;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceGroupAdapter;
-import com.android.settings.accessibility.AccessibilitySettings;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import static com.google.common.truth.Truth.assertThat;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class SettingsPreferenceFragmentTest {
-
- private Instrumentation mInstrumentation;
- private Context mTargetContext;
-
- @Before
- public void setUp() throws Exception {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mTargetContext = mInstrumentation.getTargetContext();
- }
-
- @Test
- public void testHighlightCaptions() throws InterruptedException {
- final String prefKey = "captioning_preference_screen";
- Bundle args = new Bundle();
- args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, prefKey);
-
- Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setClass(mTargetContext, SubSettings.class);
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT,
- "com.android.settings.accessibility.AccessibilitySettings");
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
-
- SettingsActivity activity = (SettingsActivity) mInstrumentation.startActivitySync(intent);
- AccessibilitySettings fragment = (AccessibilitySettings)
- activity.getFragmentManager().getFragments().get(0);
-
- // Allow time for highlight from post-delay.
- Thread.sleep(SettingsPreferenceFragment.DELAY_HIGHLIGHT_DURATION_MILLIS);
- if (!fragment.mPreferenceHighlighted) {
- Thread.sleep(SettingsPreferenceFragment.DELAY_HIGHLIGHT_DURATION_MILLIS);
- }
-
- int prefPosition = -1;
- PreferenceGroupAdapter adapter = (PreferenceGroupAdapter)
- fragment.getListView().getAdapter();
- for (int n = 0, count = adapter.getItemCount(); n < count; n++) {
- final Preference preference = adapter.getItem(n);
- final String preferenceKey = preference.getKey();
- if (preferenceKey.equals(prefKey)) {
- prefPosition = n;
- break;
- }
- }
-
- assertThat(fragment.mAdapter.initialHighlightedPosition).isEqualTo(prefPosition);
- }
-}
diff --git a/tests/app/src/com/android/settings/applications/DefaultAppSettingsTest.java b/tests/app/src/com/android/settings/applications/DefaultAppSettingsTest.java
deleted file mode 100644
index bd03bc94077faeaf0066a6bf645ba815e754bfbc..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/applications/DefaultAppSettingsTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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.
- */
-package com.android.settings.applications;
-
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.filters.SmallTest;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject;
-import android.support.test.uiautomator.UiSelector;
-import android.test.InstrumentationTestCase;
-import android.widget.TextView;
-
-import com.android.settings.R;
-
-import org.junit.Test;
-
-/**
- * Test for Advanced App preferences.
- */
-@SmallTest
-public class DefaultAppSettingsTest extends InstrumentationTestCase {
-
- private UiDevice mDevice;
- private Context mTargetContext;
- private String mTargetPackage;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mDevice = UiDevice.getInstance(getInstrumentation());
- mTargetContext = getInstrumentation().getTargetContext();
- mTargetPackage = mTargetContext.getPackageName();
- }
-
- @Test
- public void testSelectDefaultHome_shouldLaunchHomePicker() throws Exception {
- launchDefaultApps();
- final String titleHomeApp = mTargetContext.getResources().getString(R.string.home_app);
- mDevice.findObject(new UiSelector().text(titleHomeApp)).click();
- final UiObject actionBar = mDevice.findObject(new UiSelector().resourceId(
- "com.android.settings:id/action_bar"));
- final UiObject title = actionBar.getChild(
- new UiSelector().className(TextView.class.getName()));
- assertEquals(titleHomeApp, title.getText());
- }
-
- private void launchDefaultApps() throws Exception {
- final Intent settingsIntent = new Intent(Intent.ACTION_MAIN)
- .addCategory(Intent.CATEGORY_LAUNCHER)
- .setPackage(mTargetPackage)
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- getInstrumentation().getContext().startActivity(settingsIntent);
- final String titleApps = mTargetContext.getResources().getString(
- R.string.app_and_notification_dashboard_title);
- mDevice.findObject(new UiSelector().text(titleApps)).click();
- final String titleDefaultApps = mTargetContext.getResources().getString(
- R.string.app_default_dashboard_title);
- mDevice.findObject(new UiSelector().text(titleDefaultApps)).click();
- }
-
-}
diff --git a/tests/app/src/com/android/settings/applications/ExternalSourcesSettingsTest.java b/tests/app/src/com/android/settings/applications/ExternalSourcesSettingsTest.java
deleted file mode 100644
index 82f0e0a8199b6e8aa77d51b7b243685d6c515d92..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/applications/ExternalSourcesSettingsTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.applications;
-
-import static android.app.AppOpsManager.MODE_ALLOWED;
-import static android.app.AppOpsManager.MODE_DEFAULT;
-import static android.app.AppOpsManager.MODE_ERRORED;
-import static android.app.AppOpsManager.OP_REQUEST_INSTALL_PACKAGES;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import android.app.AppOpsManager;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.UserInfo;
-import android.net.Uri;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.LargeTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.BySelector;
-import android.support.test.uiautomator.Direction;
-
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-import android.widget.ListView;
-import android.widget.Switch;
-import android.widget.TextView;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.List;
-
-@RunWith(AndroidJUnit4.class)
-@LargeTest
-public class ExternalSourcesSettingsTest {
-
- private static final String TAG = ExternalSourcesSettingsTest.class.getSimpleName();
- private static final String WM_DISMISS_KEYGUARD_COMMAND = "wm dismiss-keyguard";
- private static final long START_ACTIVITY_TIMEOUT = 5000;
-
- private Context mContext;
- private UiDevice mUiDevice;
- private PackageManager mPackageManager;
- private AppOpsManager mAppOpsManager;
- private List mProfiles;
- private String mPackageName;
-
- @Before
- public void setUp() throws Exception {
- mContext = InstrumentationRegistry.getTargetContext();
- mPackageName = InstrumentationRegistry.getContext().getPackageName();
- mPackageManager = mContext.getPackageManager();
- mAppOpsManager = mContext.getSystemService(AppOpsManager.class);
- mProfiles = mContext.getSystemService(UserManager.class).getProfiles(UserHandle.myUserId());
- resetAppOpModeForAllProfiles();
- mUiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
- mUiDevice.wakeUp();
- mUiDevice.executeShellCommand(WM_DISMISS_KEYGUARD_COMMAND);
- }
-
- private void resetAppOpModeForAllProfiles() throws Exception {
- for (UserInfo user : mProfiles) {
- final int uid = mPackageManager.getPackageUidAsUser(mPackageName, user.id);
- mAppOpsManager.setMode(OP_REQUEST_INSTALL_PACKAGES, uid, mPackageName, MODE_DEFAULT);
- }
- }
-
- private Intent createManageExternalSourcesListIntent() {
- final Intent manageExternalSourcesIntent = new Intent();
- manageExternalSourcesIntent.setAction(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
- return manageExternalSourcesIntent;
- }
-
- private Intent createManageExternalSourcesAppIntent(String packageName) {
- final Intent intent = createManageExternalSourcesListIntent();
- intent.setData(Uri.parse("package:" + packageName));
- return intent;
- }
-
- private String getApplicationLabel(String packageName) throws Exception {
- final ApplicationInfo info = mPackageManager.getApplicationInfo(packageName, 0);
- return mPackageManager.getApplicationLabel(info).toString();
- }
-
- private UiObject2 findAndVerifySwitchState(boolean checked) {
- final BySelector switchSelector = By.clazz(Switch.class).res("android:id/switch_widget");
- final UiObject2 switchPref = mUiDevice.wait(Until.findObject(switchSelector),
- START_ACTIVITY_TIMEOUT);
- assertNotNull("Switch not shown", switchPref);
- assertTrue("Switch in invalid state", switchPref.isChecked() == checked);
- return switchPref;
- }
-
- @Test
- public void testManageExternalSourcesList() throws Exception {
- final String testAppLabel = getApplicationLabel(mPackageName);
-
- mContext.startActivity(createManageExternalSourcesListIntent());
- final BySelector preferenceListSelector = By.clazz(ListView.class).res("android:id/list");
- final UiObject2 preferenceList = mUiDevice.wait(Until.findObject(preferenceListSelector),
- START_ACTIVITY_TIMEOUT);
- assertNotNull("App list not shown", preferenceList);
-
- final BySelector appLabelTextViewSelector = By.clazz(TextView.class)
- .res("android:id/title")
- .text(testAppLabel);
- List listOfMatchingTextViews;
- do {
- listOfMatchingTextViews = preferenceList.findObjects(appLabelTextViewSelector);
- // assuming the number of profiles will be sufficiently small so that all the entries
- // for the same package will fit in one screen at some time during the scroll.
- } while (listOfMatchingTextViews.size() != mProfiles.size() &&
- preferenceList.scroll(Direction.DOWN, 0.2f));
- assertEquals("Test app not listed for each profile", mProfiles.size(),
- listOfMatchingTextViews.size());
-
- for (UiObject2 matchingObject : listOfMatchingTextViews) {
- matchingObject.click();
- findAndVerifySwitchState(true);
- mUiDevice.pressBack();
- }
- }
-
- private void testAppDetailScreenForAppOp(int appOpMode, int userId) throws Exception {
- final String testAppLabel = getApplicationLabel(mPackageName);
- final BySelector appDetailTitleSelector = By.clazz(TextView.class)
- .res("com.android.settings:id/app_detail_title")
- .text(testAppLabel);
-
- mAppOpsManager.setMode(OP_REQUEST_INSTALL_PACKAGES,
- mPackageManager.getPackageUidAsUser(mPackageName, userId), mPackageName, appOpMode);
- mContext.startActivityAsUser(createManageExternalSourcesAppIntent(mPackageName),
- UserHandle.of(userId));
- mUiDevice.wait(Until.findObject(appDetailTitleSelector), START_ACTIVITY_TIMEOUT);
- findAndVerifySwitchState(appOpMode == MODE_ALLOWED || appOpMode == MODE_DEFAULT);
- mUiDevice.pressBack();
- }
-
- @Test
- public void testManageExternalSourcesForApp() throws Exception {
- // App op MODE_DEFAULT is already tested in #testManageExternalSourcesList
- for (UserInfo user : mProfiles) {
- testAppDetailScreenForAppOp(MODE_ALLOWED, user.id);
- testAppDetailScreenForAppOp(MODE_ERRORED, user.id);
- }
- }
-
- private void testSwitchToggle(int fromAppOp, int toAppOp) throws Exception {
- final int packageUid = mPackageManager.getPackageUid(mPackageName, 0);
- final boolean initialState = (fromAppOp == MODE_ALLOWED || fromAppOp == MODE_DEFAULT);
-
- mAppOpsManager.setMode(OP_REQUEST_INSTALL_PACKAGES, packageUid, mPackageName, fromAppOp);
- mContext.startActivity(createManageExternalSourcesAppIntent(mPackageName));
- final UiObject2 switchPref = findAndVerifySwitchState(initialState);
- switchPref.click();
- Thread.sleep(1000);
- assertEquals("Toggling switch did not change app op", toAppOp,
- mAppOpsManager.checkOpNoThrow(OP_REQUEST_INSTALL_PACKAGES, packageUid,
- mPackageName));
- mUiDevice.pressBack();
- }
-
- @Test
- public void testIfSwitchTogglesAppOp() throws Exception {
- testSwitchToggle(MODE_ALLOWED, MODE_ERRORED);
- testSwitchToggle(MODE_ERRORED, MODE_ALLOWED);
- }
-
- @After
- public void tearDown() throws Exception {
- mUiDevice.pressHome();
- resetAppOpModeForAllProfiles();
- }
-}
diff --git a/tests/app/src/com/android/settings/applications/PackageUtilTest.java b/tests/app/src/com/android/settings/applications/PackageUtilTest.java
deleted file mode 100644
index 1c064ae88973d13d53af56eed7e85f4aa28f9b3e..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/applications/PackageUtilTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.applications;
-
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.UserInfo;
-import android.os.UserManager;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static junit.framework.Assert.assertEquals;
-import static org.mockito.Mockito.when;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class PackageUtilTest {
- private static final String ALL_USERS_APP_NAME = "com.google.allusers.app";
- private static final String ONE_USER_APP_NAME = "com.google.oneuser.app";
- private static final int USER1_ID = 1;
- private static final int USER2_ID = 11;
-
- @Mock
- private PackageManager mMockPackageManager;
- @Mock
- private UserManager mMockUserManager;
-
- private InstalledAppDetails.PackageUtil mPackageUtil;
- private List mUserInfos;
-
- @Before
- public void setUp() throws PackageManager.NameNotFoundException {
- MockitoAnnotations.initMocks(this);
-
- mUserInfos = new ArrayList<>();
- mUserInfos.add(new UserInfo(USER1_ID, "lei", 0));
- mUserInfos.add(new UserInfo(USER2_ID, "yue", 0));
- when(mMockUserManager.getUsers(true)).thenReturn(mUserInfos);
-
- ApplicationInfo usersApp = new ApplicationInfo();
- usersApp.flags = ApplicationInfo.FLAG_INSTALLED;
-
- when(mMockPackageManager.getApplicationInfoAsUser(
- ALL_USERS_APP_NAME, PackageManager.GET_META_DATA, USER1_ID))
- .thenReturn(usersApp);
- when(mMockPackageManager.getApplicationInfoAsUser(
- ALL_USERS_APP_NAME, PackageManager.GET_META_DATA, USER2_ID))
- .thenReturn(usersApp);
-
- when(mMockPackageManager.getApplicationInfoAsUser(
- ONE_USER_APP_NAME, PackageManager.GET_META_DATA, USER1_ID))
- .thenReturn(usersApp);
-
- when(mMockPackageManager.getApplicationInfoAsUser(
- ONE_USER_APP_NAME, PackageManager.GET_META_DATA, USER2_ID))
- .thenThrow(new PackageManager.NameNotFoundException());
-
- mPackageUtil = new InstalledAppDetails.PackageUtil();
- }
-
- @Test
- public void testCountPackageInUsers_twoUsersInstalled_returnTwo() {
- assertEquals(2, mPackageUtil.countPackageInUsers(
- mMockPackageManager, mMockUserManager, ALL_USERS_APP_NAME));
- }
-
- @Test
- public void testCountPackageInUsers_oneUsersInstalled_returnOne() {
- assertEquals(1, mPackageUtil.countPackageInUsers(
- mMockPackageManager, mMockUserManager, ONE_USER_APP_NAME));
- }
-}
diff --git a/tests/app/src/com/android/settings/bluetooth/BluetoothDeviceDetailsRotationTest.java b/tests/app/src/com/android/settings/bluetooth/BluetoothDeviceDetailsRotationTest.java
deleted file mode 100644
index 5b372ad4b1bc0e4a57073cfd0ba7423a109bddd1..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/bluetooth/BluetoothDeviceDetailsRotationTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.bluetooth;
-
-import static org.mockito.Mockito.when;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.UiDevice;
-
-import com.android.settings.SettingsActivity;
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class BluetoothDeviceDetailsRotationTest {
- private Context mContext;
- private UiDevice mUiDevice;
- private Instrumentation mInstrumentation;
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private CachedBluetoothDevice mCachedDevice;
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private LocalBluetoothManager mBluetoothManager;
-
- private String mDeviceAddress;
-
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- mContext = InstrumentationRegistry.getTargetContext();
- mUiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
-
- mDeviceAddress = "AA:BB:CC:DD:EE:FF";
- when(mCachedDevice.getAddress()).thenReturn(mDeviceAddress);
- when(mCachedDevice.getName()).thenReturn("Mock Device");
-
- BluetoothDeviceDetailsFragment.sTestDataFactory =
- new BluetoothDeviceDetailsFragment.TestDataFactory() {
- @Override
- public CachedBluetoothDevice getDevice(String deviceAddress) {
- return mCachedDevice;
- }
-
- @Override
- public LocalBluetoothManager getManager(Context context) {
- return mBluetoothManager;
- }
- };
- }
-
- @Test
- public void rotation() {
- Intent intent = new Intent("android.settings.BLUETOOTH_SETTINGS");
- SettingsActivity activity = (SettingsActivity) mInstrumentation.startActivitySync(intent);
- Bundle args = new Bundle(1);
- args.putString(BluetoothDeviceDetailsFragment.KEY_DEVICE_ADDRESS, mDeviceAddress);
- activity.startPreferencePanel(null, BluetoothDeviceDetailsFragment.class.getName(), args,
- 0, null, null, 0);
- try {
- mUiDevice.setOrientationLeft();
- mUiDevice.setOrientationNatural();
- mUiDevice.setOrientationRight();
- mUiDevice.setOrientationNatural();
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
- }
-}
diff --git a/tests/app/src/com/android/settings/bluetooth/DevicePickerActivityTest.java b/tests/app/src/com/android/settings/bluetooth/DevicePickerActivityTest.java
deleted file mode 100644
index 1b855c93b62f1e19848dc317bf030c3ce8507ed6..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/bluetooth/DevicePickerActivityTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.bluetooth;
-
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class DevicePickerActivityTest {
-
- private Instrumentation mInstrumentation;
-
- @Before
- public void setUp() throws Exception {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- }
-
- @Test
- public void startActivityNoCrash() {
- mInstrumentation.startActivitySync(
- new Intent("android.bluetooth.devicepicker.action.LAUNCH"));
- // No crash
- }
-}
diff --git a/tests/app/src/com/android/settings/deviceinfo/StorageDashboardFragmentEspressoTest.java b/tests/app/src/com/android/settings/deviceinfo/StorageDashboardFragmentEspressoTest.java
deleted file mode 100644
index b43a5ba882d1163de0853650149ea77c1bdd94c1..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/deviceinfo/StorageDashboardFragmentEspressoTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.android.settings.deviceinfo;
-
-import android.support.test.espresso.intent.rule.IntentsTestRule;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnitRunner;
-import com.android.settings.R;
-import com.android.settings.Settings.StorageDashboardActivity;
-import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.intent.Intents.intended;
-import static android.support.test.espresso.intent.matcher.IntentMatchers.hasExtra;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.equalTo;
-
-@SmallTest
-public class StorageDashboardFragmentEspressoTest {
-
- public static final String EXTRA_KEY = ":settings:show_fragment";
-
- @Rule
- public IntentsTestRule mActivityRule =
- new IntentsTestRule<>(StorageDashboardActivity.class, true, true);
-
- @Test
- public void testStorageManagePreference_canClickTextView() throws InterruptedException {
- // Click on the actual textbox instead of just somewhere in the preference
- onView(withText(R.string.storage_menu_manage)).perform(click());
-
- // Check that it worked by seeing if we switched screens
- intended(hasExtra(equalTo(EXTRA_KEY),
- containsString(AutomaticStorageManagerSettings.class.getName())));
-
- }
-}
diff --git a/tests/app/src/com/android/settings/fingerprint/FingerprintEnrollFinishTest.java b/tests/app/src/com/android/settings/fingerprint/FingerprintEnrollFinishTest.java
deleted file mode 100644
index b09d1bf116ee8627170b6b820b895115f49397fa..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/fingerprint/FingerprintEnrollFinishTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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.
- */
-package com.android.settings.fingerprint;
-
-import static android.support.test.InstrumentationRegistry.getTargetContext;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.intent.Intents.intended;
-import static android.support.test.espresso.intent.Intents.intending;
-import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import android.app.Activity;
-import android.app.Instrumentation.ActivityResult;
-import android.content.ComponentName;
-import android.support.test.espresso.intent.rule.IntentsTestRule;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import com.android.settings.R;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class FingerprintEnrollFinishTest {
-
- @Rule
- public IntentsTestRule mActivityRule =
- new IntentsTestRule<>(FingerprintEnrollFinish.class);
-
- @Test
- public void clickAddAnother_shouldLaunchEnrolling() {
- final ComponentName enrollingComponent = new ComponentName(
- getTargetContext(),
- FingerprintEnrollEnrolling.class);
-
- intending(hasComponent(enrollingComponent))
- .respondWith(new ActivityResult(Activity.RESULT_CANCELED, null));
-
- onView(withId(R.id.add_another_button)).perform(click());
-
- intended(hasComponent(enrollingComponent));
- assertFalse(mActivityRule.getActivity().isFinishing());
- }
-
- @Test
- public void clickAddAnother_shouldPropagateResults() {
- final ComponentName enrollingComponent = new ComponentName(
- getTargetContext(),
- FingerprintEnrollEnrolling.class);
-
- intending(hasComponent(enrollingComponent))
- .respondWith(new ActivityResult(Activity.RESULT_OK, null));
-
- onView(withId(R.id.add_another_button)).perform(click());
-
- intended(hasComponent(enrollingComponent));
- assertTrue(mActivityRule.getActivity().isFinishing());
- }
-
- @Test
- public void clickNext_shouldFinish() {
- onView(withId(R.id.next_button)).perform(click());
- assertTrue(mActivityRule.getActivity().isFinishing());
- }
-}
\ No newline at end of file
diff --git a/tests/app/src/com/android/settings/fuelgauge/PowerUsageSummaryUiTest.java b/tests/app/src/com/android/settings/fuelgauge/PowerUsageSummaryUiTest.java
deleted file mode 100644
index 6c372c5f5f175070a6cc2cea2ff68370644808f0..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/fuelgauge/PowerUsageSummaryUiTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.fuelgauge;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class PowerUsageSummaryUiTest {
- private static final String BATTERY_INTENT = "android.intent.action.POWER_USAGE_SUMMARY";
-
- @Before
- public void SetUp() {
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(BATTERY_INTENT));
- }
-
- @Test
- public void testClickLastFullCharge_shouldNotCrash() {
- onView(withText(R.string.battery_last_full_charge)).perform(click());
- }
-
- @Test
- public void testClickScreenUsage_shouldNotCrash() {
- onView(withText(R.string.device_screen_usage)).perform(click());
- }
-
-}
diff --git a/tests/app/src/com/android/settings/notification/AppNotificationSettingsTest.java b/tests/app/src/com/android/settings/notification/AppNotificationSettingsTest.java
deleted file mode 100644
index 22e98c71e5e0db8067d610779528688fc3e3d6f9..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/notification/AppNotificationSettingsTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.notification;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.espresso.matcher.ViewMatchers;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static org.hamcrest.Matchers.allOf;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class AppNotificationSettingsTest {
-
- private Context mTargetContext;
- private Instrumentation mInstrumentation;
-
- @Before
- public void setUp() {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mTargetContext = mInstrumentation.getTargetContext();
- }
-
- @Test
- public void launchNotificationSetting_shouldNotHaveAppInfoLink() {
- final Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
- .putExtra(Settings.EXTRA_APP_PACKAGE, mTargetContext.getPackageName());
-
- mInstrumentation.startActivitySync(intent);
-
- onView(allOf(withId(android.R.id.button1),
- withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
- .check(doesNotExist());
- }
-
-}
diff --git a/tests/app/src/com/android/settings/notification/SoundSettingsIntegrationTest.java b/tests/app/src/com/android/settings/notification/SoundSettingsIntegrationTest.java
deleted file mode 100644
index dff7e611bee9aa61dbb883a29ac1944b6cd8c2e5..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/notification/SoundSettingsIntegrationTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.notification;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import static org.hamcrest.Matchers.allOf;
-import static org.hamcrest.Matchers.containsString;
-
-import android.content.Context;
-import android.media.AudioManager;
-import android.support.test.espresso.contrib.RecyclerViewActions;
-import android.support.test.filters.SmallTest;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.runner.AndroidJUnit4;
-import com.android.settings.R;
-import com.android.settings.Settings;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class SoundSettingsIntegrationTest {
-
- private AudioManager mAudioManager;
- private final String TRUNCATED_SUMMARY = "Ring volume at";
-
- @Rule
- public ActivityTestRule mActivityRule =
- new ActivityTestRule<>(Settings.class, true);
-
- @Test
- public void soundPreferenceShowsCorrectSummaryOnSilentMode() {
- mAudioManager = (AudioManager) mActivityRule.getActivity().getApplicationContext()
- .getSystemService(Context.AUDIO_SERVICE);
- mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
- onView(withId(R.id.dashboard_container))
- .perform(RecyclerViewActions.scrollTo(
- hasDescendant(withText(R.string.sound_settings))));
- onView(withText(R.string.sound_settings_summary_silent)).check(matches(isDisplayed()));
- }
-
- @Test
- public void soundPreferenceShowsCorrectSummaryOnVibrateMode() {
- mAudioManager = (AudioManager) mActivityRule.getActivity().getApplicationContext()
- .getSystemService(Context.AUDIO_SERVICE);
- mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
- onView(withId(R.id.dashboard_container)).perform(RecyclerViewActions
- .scrollTo(hasDescendant(withText(R.string.sound_settings))));
- onView(withText(R.string.sound_settings_summary_vibrate)).check(matches(isDisplayed()));
- }
-
- @Test
- public void soundPreferenceShowsCorrectSummaryOnMaxVolume() {
- mAudioManager = (AudioManager) mActivityRule.getActivity().getApplicationContext()
- .getSystemService(Context.AUDIO_SERVICE);
- mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
- mAudioManager.setStreamVolume(AudioManager.STREAM_RING,
- mAudioManager.getStreamMaxVolume(AudioManager.STREAM_RING), 0);
- onView(withId(R.id.dashboard_container))
- .perform(RecyclerViewActions.scrollTo(
- hasDescendant(withText(R.string.sound_settings))));
- onView(withText(containsString(TRUNCATED_SUMMARY))).check(matches(isDisplayed()));
- }
-}
\ No newline at end of file
diff --git a/tests/app/src/com/android/settings/notification/ZenModeSettingsIntegrationTest.java b/tests/app/src/com/android/settings/notification/ZenModeSettingsIntegrationTest.java
deleted file mode 100644
index e7e5e199cbfe33f119cbd8399b14b607090f050d..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/notification/ZenModeSettingsIntegrationTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.android.settings.notification;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.LargeTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.UiDevice;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@LargeTest
-public class ZenModeSettingsIntegrationTest {
- private static final String WM_DISMISS_KEYGUARD_COMMAND = "wm dismiss-keyguard";
-
- private Context mContext;
- private UiDevice mUiDevice;
-
- @Before
- public void setUp() throws Exception {
- mContext = InstrumentationRegistry.getTargetContext();
- mUiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
- mUiDevice.wakeUp();
- mUiDevice.executeShellCommand(WM_DISMISS_KEYGUARD_COMMAND);
- }
-
- @Test
- public void testAutomaticRulesAppear() {
- launchZenSettings();
- onView(withText("Automatic rules")).check(matches(isDisplayed()));
- onView(withText("Weekend")).check(matches(isDisplayed()));
- onView(withText("Add more")).check(matches(isDisplayed())).perform(click());
- onView(withText("Choose rule type")).check(matches(isDisplayed()));
- }
-
- private void launchZenSettings() {
- Intent settingsIntent = new Intent(Settings.ACTION_ZEN_MODE_SETTINGS)
- .setPackage(mContext.getPackageName())
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mContext.startActivity(settingsIntent);
- }
-}
diff --git a/tests/app/src/com/android/settings/password/ChooseLockGenericTest.java b/tests/app/src/com/android/settings/password/ChooseLockGenericTest.java
deleted file mode 100644
index 40b69a400a00a833608b475e24128d94c388c703..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/password/ChooseLockGenericTest.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.password;
-
-import static android.support.test.InstrumentationRegistry.getInstrumentation;
-import static android.support.test.InstrumentationRegistry.getTargetContext;
-import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.assertTrue;
-
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.app.ActivityManager.AppTask;
-import android.app.KeyguardManager;
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.filters.MediumTest;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.runner.lifecycle.ActivityLifecycleMonitorRegistry;
-import android.support.test.runner.lifecycle.Stage;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject;
-import android.support.test.uiautomator.UiSelector;
-import android.text.format.DateUtils;
-import android.view.WindowManager;
-
-import com.android.internal.widget.LockPatternUtils;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * Tests for {@link ChooseLockGenericTest}
- *
- * m SettingsTests &&
- * adb install \
- * -r -g ${ANDROID_PRODUCT_OUT}/data/app/SettingsTests/SettingsTests.apk &&
- * adb shell am instrument -e class com.android.settings.password.ChooseLockGenericTest \
- * -w com.android.settings.tests/android.support.test.runner.AndroidJUnitRunner
- */
-@RunWith(AndroidJUnit4.class)
-@MediumTest
-public class ChooseLockGenericTest {
- private static final long TIMEOUT = 5 * DateUtils.SECOND_IN_MILLIS;
- private static final Intent PHISHING_ATTACK_INTENT = new Intent()
- .putExtra("confirm_credentials", false)
- .putExtra("password_confirmed", true);
-
- private UiDevice mDevice;
- private Context mTargetContext;
- private String mSettingPackage;
-
- @Rule
- public ActivityTestRule mChooseLockGenericActivityRule =
- new ActivityTestRule<>(
- ChooseLockGeneric.class,
- true /* enable touch at launch */,
- false /* don't launch at every test */);
-
- @Before
- public void setUp() throws Exception {
- mDevice = UiDevice.getInstance(getInstrumentation());
- mTargetContext = getInstrumentation().getTargetContext();
- mSettingPackage = mTargetContext.getPackageName();
- }
-
- @Test
- public void testConfirmLockPasswordShown_deviceWithPassword() throws Throwable {
- setPassword();
- try {
- // GIVEN a PIN password is set on this device at set up.
- // WHEN ChooseLockGeneric is launched with no extras.
- mChooseLockGenericActivityRule.launchActivity(null /* No extras */);
- // THEN ConfirmLockPassword.InternalActivity is shown.
- final Activity activity = getCurrentActivity();
- assertThat(isSecureWindow(activity)).isTrue();
- assertThat(activity)
- .isInstanceOf(ConfirmLockPassword.InternalActivity.class);
- } finally {
- finishAllAppTasks();
- mDevice.waitForIdle();
- clearPassword();
- }
- }
-
- @Test
- public void testConfirmLockPasswordShown_deviceWithPassword_phishingAttack() throws Throwable {
- setPassword();
- try {
- // GIVEN a PIN password is set on this device at set up.
- // WHEN ChooseLockGeneric is launched with extras to by-pass lock password confirmation.
- mChooseLockGenericActivityRule.launchActivity(PHISHING_ATTACK_INTENT);
- // THEN ConfirmLockPassword.InternalActivity is still shown.
- final Activity activity = getCurrentActivity();
- assertThat(isSecureWindow(activity)).isTrue();
- assertThat(activity)
- .isInstanceOf(ConfirmLockPassword.InternalActivity.class);
- } finally {
- finishAllAppTasks();
- mDevice.waitForIdle();
- clearPassword();
- }
- }
-
- @Test
- public void testForFingerprint_inflateLayout() {
- mChooseLockGenericActivityRule.launchActivity(new Intent()
- .putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true));
-
- assertThat(mChooseLockGenericActivityRule.getActivity().isResumed()).isTrue();
- }
-
- private Activity getCurrentActivity() throws Throwable {
- getInstrumentation().waitForIdleSync();
- final Activity[] activity = new Activity[1];
- getInstrumentation().runOnMainSync(() -> {
- Collection activities = ActivityLifecycleMonitorRegistry.getInstance()
- .getActivitiesInStage(Stage.RESUMED);
- activity[0] = activities.iterator().next();
- });
- return activity[0];
- }
-
- /** Sets a PIN password, 12345, for testing. */
- private void setPassword() throws Exception {
- Intent newPasswordIntent = new Intent(getTargetContext(), ChooseLockGeneric.class)
- .putExtra(LockPatternUtils.PASSWORD_TYPE_KEY,
- DevicePolicyManager.PASSWORD_QUALITY_NUMERIC)
- .putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD,
- "12345")
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- getInstrumentation().getContext().startActivity(newPasswordIntent);
- mDevice.waitForIdle();
-
-
- // Ignore any interstitial options
- UiObject view = new UiObject(new UiSelector()
- .resourceId(mSettingPackage + ":id/encrypt_dont_require_password"));
- if (view.waitForExists(TIMEOUT)) {
- view.click();
- mDevice.waitForIdle();
- }
-
- // Set our PIN
- view = new UiObject(new UiSelector()
- .resourceId(mSettingPackage + ":id/password_entry"));
- assertTrue("password_entry", view.waitForExists(TIMEOUT));
-
- // Enter it twice to confirm
- enterTestPin(view);
- enterTestPin(view);
-
- mDevice.pressBack();
-
- assertThat(getTargetContext().getSystemService(KeyguardManager.class).isDeviceSecure())
- .isTrue();
- }
-
- /** Clears the previous set PIN password. */
- private void clearPassword() throws Exception {
- Intent newPasswordIntent = new Intent(getTargetContext(), ChooseLockGeneric.class)
- .putExtra(LockPatternUtils.PASSWORD_TYPE_KEY,
- DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED)
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
- | Intent.FLAG_ACTIVITY_CLEAR_TASK);
- getInstrumentation().getContext().startActivity(newPasswordIntent);
- mDevice.waitForIdle();
-
- // Enter current PIN
- UiObject view = new UiObject(
- new UiSelector().resourceId(mSettingPackage + ":id/password_entry"));
- if (!view.waitForExists(TIMEOUT)) {
- // Odd, maybe there is a crash dialog showing; try dismissing it
- mDevice.pressBack();
- mDevice.waitForIdle();
-
- assertTrue("password_entry", view.waitForExists(TIMEOUT));
- }
-
- enterTestPin(view);
-
- mDevice.pressBack();
-
- assertThat(getTargetContext().getSystemService(KeyguardManager.class).isDeviceSecure())
- .isFalse();
- }
-
- private void finishAllAppTasks() {
- final ActivityManager activityManager =
- getTargetContext().getSystemService(ActivityManager.class);
- final List appTasks = activityManager.getAppTasks();
- for (ActivityManager.AppTask task : appTasks) {
- task.finishAndRemoveTask();
- }
- }
-
- private void enterTestPin(UiObject view) throws Exception {
- mDevice.waitForIdle();
- view.setText("12345");
- mDevice.pressEnter();
- mDevice.waitForIdle();
- }
-
- private boolean isSecureWindow(Activity activity) {
- return (activity.getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_SECURE)
- != 0;
- }
-}
diff --git a/tests/app/src/com/android/settings/password/ChooseLockPasswordTest.java b/tests/app/src/com/android/settings/password/ChooseLockPasswordTest.java
deleted file mode 100644
index 36611cf50bf6eaef8eb0ac38a874784c9ae7542f..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/password/ChooseLockPasswordTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2017 Google Inc.
- *
- * 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.password;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.pressKey;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.isEnabled;
-import static android.support.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-
-import static org.hamcrest.CoreMatchers.not;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.os.SystemClock;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.espresso.action.ViewActions;
-import android.support.test.espresso.matcher.ViewMatchers;
-import android.support.test.runner.AndroidJUnit4;
-import android.view.KeyEvent;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class ChooseLockPasswordTest {
- private Instrumentation mInstrumentation;
- private Context mContext;
-
- @Before
- public void setUp() {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mContext = mInstrumentation.getTargetContext();
- }
-
- @Test
- public void clearNotVisible_when_activityLaunchedInitially() {
- mInstrumentation.startActivitySync(new Intent(mContext, ChooseLockPassword.class));
- onView(withId(R.id.clear_button)).check(matches(
- withEffectiveVisibility(ViewMatchers.Visibility.GONE)));
- }
-
- @Test
- public void clearNotEnabled_when_nothingEntered() {
- mInstrumentation.startActivitySync(new Intent(mContext, ChooseLockPassword.class));
- onView(withId(R.id.password_entry)).perform(ViewActions.typeText("1234"))
- .perform(pressKey(KeyEvent.KEYCODE_ENTER));
- onView(withId(R.id.clear_button)).check(matches(isDisplayed()))
- .check(matches(not(isEnabled())));
- }
-
- @Test
- public void clearEnabled_when_somethingEnteredToConfirm() {
- mInstrumentation.startActivitySync(new Intent(mContext, ChooseLockPassword.class));
- onView(withId(R.id.password_entry)).perform(ViewActions.typeText("1234"))
- .perform(pressKey(KeyEvent.KEYCODE_ENTER))
- .perform(ViewActions.typeText("1"));
- // clear should be present if text field contains content
- onView(withId(R.id.clear_button)).check(matches(isDisplayed()));
- }
-}
diff --git a/tests/app/src/com/android/settings/password/ConfirmLockPasswordTest.java b/tests/app/src/com/android/settings/password/ConfirmLockPasswordTest.java
deleted file mode 100644
index 25e7da05edc330d3c9c4a812a536dcd6025f02a2..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/password/ConfirmLockPasswordTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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
- */
-
-package com.android.settings.password;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.pressKey;
-import static android.support.test.espresso.action.ViewActions.typeText;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-import android.view.KeyEvent;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class ConfirmLockPasswordTest {
-
- private Instrumentation mInstrumentation;
- private Context mContext;
-
- @Before
- public void setUp() {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mContext = mInstrumentation.getTargetContext();
- }
-
- @Test
- public void enterWrongPin_shouldShowErrorMessage() {
- mInstrumentation.startActivitySync(
- new Intent(mContext, ConfirmLockPassword.class));
- onView(withId(R.id.password_entry)).perform(typeText("1234"))
- .perform(pressKey(KeyEvent.KEYCODE_ENTER));
- onView(withId(R.id.errorText)).check(matches(withText(R.string.lockpassword_invalid_pin)));
- }
-
- @Test
- public void enterWrongPin_darkTheme_shouldShowErrorMessage() {
- mInstrumentation.startActivitySync(
- new Intent(mContext, ConfirmLockPassword.class)
- .putExtra(ConfirmDeviceCredentialBaseFragment.DARK_THEME, true));
- onView(withId(R.id.password_entry)).perform(typeText("1234"))
- .perform(pressKey(KeyEvent.KEYCODE_ENTER));
- onView(withId(R.id.errorText)).check(matches(withText(R.string.lockpassword_invalid_pin)));
- }
-}
diff --git a/tests/app/src/com/android/settings/password/SetupChooseLockPasswordAppTest.java b/tests/app/src/com/android/settings/password/SetupChooseLockPasswordAppTest.java
deleted file mode 100644
index 3a6c39c5c68ca764b67b016864a7b0f8696037a5..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/password/SetupChooseLockPasswordAppTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.password;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.action.ViewActions.pressKey;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.isEnabled;
-import static android.support.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.hamcrest.CoreMatchers.not;
-
-import android.support.test.espresso.action.ViewActions;
-import android.support.test.espresso.matcher.ViewMatchers;
-import android.support.test.filters.MediumTest;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.runner.AndroidJUnit4;
-import android.view.KeyEvent;
-
-import com.android.settings.R;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@MediumTest
-public class SetupChooseLockPasswordAppTest {
-
- @Rule
- public ActivityTestRule mActivityTestRule =
- new ActivityTestRule<>(
- SetupChooseLockPassword.class,
- true /* enable touch at launch */,
- false /* don't launch at every test */);
-
- @Test
- public void testSkipDialogIsShown() throws Throwable {
- SetupChooseLockPassword activity = mActivityTestRule.launchActivity(null);
-
- onView(withId(R.id.cancel_button))
- .check(matches(withText(R.string.skip_label)))
- .check(matches(isDisplayed()))
- .perform(click());
- onView(withId(android.R.id.button1)).check(matches(isDisplayed())).perform(click());
-
- assertThat(activity.isFinishing()).named("Is finishing").isTrue();
- }
-
- @Test
- public void clearNotVisible_when_activityLaunchedInitially() {
- mActivityTestRule.launchActivity(null);
- onView(withId(R.id.clear_button)).check(matches(
- withEffectiveVisibility(ViewMatchers.Visibility.GONE)));
- }
-
- @Test
- public void clearNotEnabled_when_nothingEntered() throws Throwable {
- mActivityTestRule.launchActivity(null);
- onView(withId(R.id.password_entry)).perform(ViewActions.typeText("1234"))
- .perform(pressKey(KeyEvent.KEYCODE_ENTER));
- onView(withId(R.id.clear_button)).check(matches(isDisplayed()))
- .check(matches(not(isEnabled())));
- }
-
- @Test
- public void clearEnabled_when_somethingEnteredToConfirm() {
- mActivityTestRule.launchActivity(null);
- onView(withId(R.id.password_entry)).perform(ViewActions.typeText("1234"))
- .perform(pressKey(KeyEvent.KEYCODE_ENTER))
- .perform(ViewActions.typeText("1"));
- // clear should be present if text field contains content
- onView(withId(R.id.clear_button)).check(matches(isDisplayed()));
- }
-}
diff --git a/tests/app/src/com/android/settings/search/SearchFragmentEspressoTest.java b/tests/app/src/com/android/settings/search/SearchFragmentEspressoTest.java
deleted file mode 100644
index d342881915579ddbd66d787f6e966d180767f896..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/search/SearchFragmentEspressoTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.
- *
- */
-
-package com.android.settings.search;
-
-import android.support.test.filters.SmallTest;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.runner.AndroidJUnit4;
-import android.widget.SearchView;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.matcher.ViewMatchers.hasFocus;
-import static android.support.test.espresso.matcher.ViewMatchers.withClassName;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.core.AllOf.allOf;
-
-import com.android.settings.R;
-
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class SearchFragmentEspressoTest {
- @Rule
- public ActivityTestRule mActivityRule =
- new ActivityTestRule<>(SearchActivity.class, true, true);
-
- @Test
- public void test_OpenKeyboardOnSearchLaunch() {
- onView(allOf(hasFocus(), withId(R.id.search_view)))
- .check(matches(withClassName(containsString(SearchView.class.getName()))));
- }
-}
diff --git a/tests/app/src/com/android/settings/tests/BluetoothRequestPermissionTest.java b/tests/app/src/com/android/settings/tests/BluetoothRequestPermissionTest.java
deleted file mode 100644
index a2cdafe8aa4c46bd59c26ce36e5d799335b53bb5..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/BluetoothRequestPermissionTest.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (C) 2009 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.settings.tests;
-
-import android.app.Activity;
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothDevice;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ListView;
-
-public class BluetoothRequestPermissionTest extends Activity {
- private static final String TAG = "BluetoothRequestPermissionTest";
- BluetoothAdapter mAdapter;
- private ArrayAdapter mMsgAdapter;
-
- // Discoverable button alternates between 20 second timeout and no timeout.
- private boolean mDiscoveryWithTimeout = true;
-
- private class BtOnClickListener implements OnClickListener {
- final boolean mEnableOnly; // enable or enable + discoverable
-
- public BtOnClickListener(boolean enableOnly) {
- mEnableOnly = enableOnly;
- }
-
- public void onClick(View v) {
- requestPermission(mEnableOnly);
- }
- }
-
- private class BtScanOnClickListener implements OnClickListener {
- public void onClick(View v) {
- Button scanButton = (Button) v;
- if (mAdapter.isDiscovering()) {
- mAdapter.cancelDiscovery();
- scanButton.setText(R.string.start_scan);
- } else {
- mAdapter.startDiscovery();
- scanButton.setText(R.string.stop_scan);
- }
- }
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.bluetooth_request_permission_test);
- mAdapter = BluetoothAdapter.getDefaultAdapter();
-
- Button enable = (Button) findViewById(R.id.enable);
- enable.setOnClickListener(new BtOnClickListener(true /* enable */));
-
- Button discoverable = (Button) findViewById(R.id.discoverable);
- discoverable.setOnClickListener(new BtOnClickListener(false /* enable & discoverable */));
-
- Button scanButton = (Button) findViewById(R.id.scan);
- scanButton.setOnClickListener(new BtScanOnClickListener());
- if (mAdapter.isDiscovering()) {
- scanButton.setText(R.string.stop_scan);
- } else {
- scanButton.setText(R.string.start_scan);
- }
-
- mMsgAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1);
-
- ListView listView = (ListView) findViewById(R.id.msg_container);
- listView.setAdapter(mMsgAdapter);
-
- IntentFilter filter = new IntentFilter();
- filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
- filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
- filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
- filter.addAction(BluetoothDevice.ACTION_FOUND);
- registerReceiver(mReceiver, filter);
- addMsg("Initialized");
- }
-
- void requestPermission(boolean enableOnly) {
- Intent i = new Intent();
- if (enableOnly) {
- addMsg("Starting activity to enable bt");
- i.setAction(BluetoothAdapter.ACTION_REQUEST_ENABLE);
- } else {
- addMsg("Starting activity to enable bt + discovery");
- i.setAction(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
- // Discoverability duration toggles between 20 seconds and no timeout.
- int timeout = (mDiscoveryWithTimeout ? 20 : 0);
- i.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, timeout);
- mDiscoveryWithTimeout = !mDiscoveryWithTimeout;
- }
- startActivityForResult(i, 1);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode != 1) {
- Log.e(TAG, "Unexpected onActivityResult " + requestCode + " " + resultCode);
- return;
- }
-
- if (resultCode == Activity.RESULT_CANCELED) {
- addMsg("Result = RESULT_CANCELED");
- } else if (resultCode == Activity.RESULT_OK) {
- addMsg("Result = RESULT_OK (not expected for discovery)");
- } else {
- addMsg("Result = " + resultCode);
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- unregisterReceiver(mReceiver);
- }
-
- private void addMsg(String msg) {
- mMsgAdapter.add(msg);
- Log.d(TAG, "msg");
- }
-
- private BroadcastReceiver mReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- if (intent == null)
- return;
- String action = intent.getAction();
- if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {
- String stateStr = "???";
- switch (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothDevice.ERROR)) {
- case BluetoothAdapter.STATE_OFF:
- stateStr = "off";
- break;
- case BluetoothAdapter.STATE_TURNING_ON:
- stateStr = "turning on";
- break;
- case BluetoothAdapter.STATE_ON:
- stateStr = "on";
- break;
- case BluetoothAdapter.STATE_TURNING_OFF:
- stateStr = "turning off";
- break;
- }
- addMsg("Bluetooth status = " + stateStr);
- } else if (action.equals(BluetoothDevice.ACTION_FOUND)) {
- String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
- addMsg("Found: " + name);
- } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) {
- addMsg("Scan started...");
- } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
- addMsg("Scan ended");
- }
- }
- };
-}
diff --git a/tests/app/src/com/android/settings/tests/DashboardAdapterTest.java b/tests/app/src/com/android/settings/tests/DashboardAdapterTest.java
deleted file mode 100644
index 4b8e6cf4bc482b3234a1eea846ab121a34b83919..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/DashboardAdapterTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.tests;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import com.android.settings.R;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.*;
-import static android.support.test.espresso.matcher.ViewMatchers.Visibility.VISIBLE;
-import static org.hamcrest.core.AllOf.allOf;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class DashboardAdapterTest {
- @Before
- public void SetUp() {
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(Settings
- .ACTION_SETTINGS));
- }
-
- @Test
- public void testTileConsistency_ToggleSuggestionsAndOpenBluetooth_shouldInBluetooth()
- throws Exception{
- final Context context = InstrumentationRegistry.getTargetContext();
-
- onView(allOf(withText(context.getString(R.string.suggestions_title)),
- withEffectiveVisibility(VISIBLE))).perform(click());
- onView(allOf(withText(context.getString(R.string.bluetooth_settings)),
- withEffectiveVisibility(VISIBLE))).perform(click());
-
- // It should go to Bluetooth sub page, not other page or crash
- onView(allOf(withText(context.getString(R.string.bluetooth_settings)),
- withEffectiveVisibility(VISIBLE))).check(matches(isDisplayed()));
-
- }
-}
diff --git a/tests/app/src/com/android/settings/tests/DrawOverlayDetailsTest.java b/tests/app/src/com/android/settings/tests/DrawOverlayDetailsTest.java
deleted file mode 100644
index 234f8e6b1513303cc54c9dde061a547506d09f62..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/DrawOverlayDetailsTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.tests;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.support.test.InstrumentationRegistry;
-import org.junit.runner.RunWith;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import org.junit.Test;
-import com.android.settings.R;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isEnabled;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import static org.hamcrest.core.IsNot.not;
-import static android.support.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class DrawOverlayDetailsTest {
- private final static String PACKAGE_SYSTEM_UI = "com.android.systemui";
-
- @Test
- public void testSystemUiDrawOverlayDetails_Disabled() throws Exception{
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(android.provider.Settings
- .ACTION_MANAGE_OVERLAY_PERMISSION));
-
- final Context targetContext = instrumentation.getTargetContext();
-
- final PackageManager packageManager = targetContext.getPackageManager();
- final String appName = (String) packageManager.getApplicationLabel(packageManager
- .getApplicationInfo(PACKAGE_SYSTEM_UI, PackageManager.GET_META_DATA));
-
- openActionBarOverflowOrOptionsMenu(targetContext);
- onView(withText(targetContext.getString(R.string.menu_show_system))).perform(click());
- onView(withText(appName)).perform(click());
- onView(withText(targetContext.getString(R.string.permit_draw_overlay))).check(matches
- (not(isEnabled())));
- }
-
-}
diff --git a/tests/app/src/com/android/settings/tests/KeepOnScreenTest.java b/tests/app/src/com/android/settings/tests/KeepOnScreenTest.java
deleted file mode 100644
index 0b1308e6d03055df2e9af49a94fe8238f8566985..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/KeepOnScreenTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.tests;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.os.BatteryManager;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.runner.RunWith;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import org.junit.Test;
-import com.android.settings.R;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.matcher.ViewMatchers.*;
-import static junit.framework.Assert.assertEquals;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class KeepOnScreenTest {
- private static int EXPECTED_FLAG = BatteryManager.BATTERY_PLUGGED_AC
- | BatteryManager.BATTERY_PLUGGED_USB | BatteryManager.BATTERY_PLUGGED_WIRELESS;
-
- @Test
- public void testStayAwake_turnOn_StayAwakeWhileWirelessCharging() throws Exception{
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(new Intent(android.provider.Settings
- .ACTION_APPLICATION_DEVELOPMENT_SETTINGS));
-
- final Context targetContext = instrumentation.getTargetContext();
- final int prevFlag = Settings.Global.getInt(targetContext.getContentResolver(), Settings
- .Global.STAY_ON_WHILE_PLUGGED_IN);
-
- // Turn on "Stay Awake" if needed
- if (prevFlag == 0) {
- onView(withText(R.string.keep_screen_on)).perform(click());
- }
-
- final int currentFlag = Settings.Global.getInt(targetContext.getContentResolver(), Settings
- .Global.STAY_ON_WHILE_PLUGGED_IN);
-
- assertEquals(EXPECTED_FLAG, currentFlag);
-
- // Since this app doesn't have permission(and shouldn't have) to change global setting, we
- // can only tearDown in this way
- if (prevFlag != currentFlag) {
- onView(withText(R.string.keep_screen_on)).perform(click());
- }
- }
-}
diff --git a/tests/app/src/com/android/settings/tests/Manufacturer.java b/tests/app/src/com/android/settings/tests/Manufacturer.java
deleted file mode 100644
index 692e6a8c287594d37b8c85b56aee0ed73ffb1ad4..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/Manufacturer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2010 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.settings.tests;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class Manufacturer extends Activity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.manufacturer_main);
- }
-}
diff --git a/tests/app/src/com/android/settings/tests/Operator.java b/tests/app/src/com/android/settings/tests/Operator.java
deleted file mode 100644
index 8a34363da2a9593b65c565c8c7a6921f44f92ffd..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/Operator.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2010 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.settings.tests;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class Operator extends Activity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.operator_main);
- }
-
-}
diff --git a/tests/app/src/com/android/settings/tests/PrivateVolumeSettingsTest.java b/tests/app/src/com/android/settings/tests/PrivateVolumeSettingsTest.java
deleted file mode 100644
index 6289f1b449af95ccbfc33d49a913d845db17e652..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/PrivateVolumeSettingsTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.tests;
-
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import com.android.settings.Settings;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class PrivateVolumeSettingsTest {
- @Test
- public void test_ManageStorageNotShown() {
- Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
- instrumentation.startActivitySync(
- new Intent(android.provider.Settings.ACTION_INTERNAL_STORAGE_SETTINGS));
- onView(withText(com.android.settings.R.string.storage_menu_manage)).check(doesNotExist());
- }
-}
\ No newline at end of file
diff --git a/tests/app/src/com/android/settings/tests/SettingsLaunchPerformance.java b/tests/app/src/com/android/settings/tests/SettingsLaunchPerformance.java
deleted file mode 100644
index 225a60b6309ed6b1ad281ae78ef9e57e7cb1303c..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/SettingsLaunchPerformance.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2007 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.settings.tests;
-
-import android.app.Activity;
-import android.test.LaunchPerformanceBase;
-import android.os.Bundle;
-
-import java.util.Map;
-
-/**
- * Instrumentation class for Settings launch performance testing.
- */
-public class SettingsLaunchPerformance extends LaunchPerformanceBase {
-
- public static final String LOG_TAG = "SettingsLaunchPerformance";
-
- public SettingsLaunchPerformance() {
- super();
- }
-
- @Override
- public void onCreate(Bundle arguments) {
- super.onCreate(arguments);
-
- mIntent.setClassName(getTargetContext(), "com.android.settings.Settings");
- start();
- }
-
- /**
- * Calls LaunchApp and finish.
- */
- @Override
- public void onStart() {
- super.onStart();
- LaunchApp();
- finish(Activity.RESULT_OK, mResults);
- }
-}
diff --git a/tests/app/src/com/android/settings/tests/SettingsRestoreAfterCloseTest.java b/tests/app/src/com/android/settings/tests/SettingsRestoreAfterCloseTest.java
deleted file mode 100644
index 96bc78c9f00b79994a5acfa9d00a879452c09d63..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/tests/SettingsRestoreAfterCloseTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.tests;
-
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class SettingsRestoreAfterCloseTest {
- private static final String PACKAGE_SETTINGS = "com.android.settings";
- private static final int TIME_OUT = 2000;
-
- private boolean mAlwaysFinish;
-
- @Before
- public void setUp() throws Exception {
- // To make sure when we press home button, the activity will be destroyed by OS
- Context context = InstrumentationRegistry.getContext();
- mAlwaysFinish = Settings.Global.getInt(
- context.getContentResolver(), Settings.Global
- .ALWAYS_FINISH_ACTIVITIES, 0)
- != 0;
-
- ActivityManager.getService().setAlwaysFinish(true);
- }
-
- @After
- public void tearDown() throws Exception {
- ActivityManager.getService().setAlwaysFinish(mAlwaysFinish);
- }
-
- @Test
- public void testRtlStability_AppCloseAndReOpen_shouldNotCrash() throws Exception {
-
- final UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation
- ());
- uiDevice.pressHome();
-
- // Open the settings app
- startSettingsMainActivity(uiDevice);
-
- // Press home button
- uiDevice.pressHome();
- final String launcherPackage = uiDevice.getLauncherPackageName();
- uiDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)), TIME_OUT);
-
- // Open the settings again
- startSettingsMainActivity(uiDevice);
- }
-
- private void startSettingsMainActivity(UiDevice uiDevice) {
- Context context = InstrumentationRegistry.getContext();
- context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
- uiDevice.wait(Until.hasObject(By.pkg(PACKAGE_SETTINGS).depth(0)), TIME_OUT);
- }
-}
diff --git a/tests/app/src/com/android/settings/users/UserSettingsTest.java b/tests/app/src/com/android/settings/users/UserSettingsTest.java
deleted file mode 100644
index 06e2bdde3f1ac4198c982145beda6824e2bbe133..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/users/UserSettingsTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2016 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.settings.users;
-
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.filters.SmallTest;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject;
-import android.support.test.uiautomator.UiSelector;
-import android.support.test.uiautomator.UiScrollable;
-import android.test.InstrumentationTestCase;
-
-import com.android.settings.R;
-
-import org.junit.Test;
-
-@SmallTest
-public class UserSettingsTest extends InstrumentationTestCase {
-
- private static final String USER_AND_ACCOUNTS = "Users & accounts";
- private static final String USERS = "Users";
- private static final String EMERGNENCY_INFO = "Emergency information";
- private static final String ADD_USERS_WHEN_LOCKED = "Add users";
-
- private UiDevice mDevice;
- private Context mContext;
- private String mTargetPackage;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mDevice = UiDevice.getInstance(getInstrumentation());
- mContext = getInstrumentation().getTargetContext();
- mTargetPackage = mContext.getPackageName();
- }
-
- @Test
- public void testEmergencyInfoNotExists() throws Exception {
- launchUserSettings();
- UiObject emergencyInfoPreference =
- mDevice.findObject(new UiSelector().text(EMERGNENCY_INFO));
- assertFalse(emergencyInfoPreference.exists());
- }
-
- @Test
- public void testAddUsersWhenLockedNotExists() throws Exception {
- launchUserSettings();
- UiObject addUsersPreference =
- mDevice.findObject(new UiSelector().text(ADD_USERS_WHEN_LOCKED));
- assertFalse(addUsersPreference.exists());
- }
-
- private void launchSettings() {
- Intent settingsIntent = new Intent(Intent.ACTION_MAIN)
- .addCategory(Intent.CATEGORY_LAUNCHER)
- .setPackage(mTargetPackage)
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- getInstrumentation().getContext().startActivity(settingsIntent);
- }
-
- private void launchUserSettings() throws Exception {
- launchSettings();
- final UiScrollable settings = new UiScrollable(
- new UiSelector().packageName(mTargetPackage).scrollable(true));
- final String titleUsersAndAccounts = USER_AND_ACCOUNTS;
- settings.scrollTextIntoView(titleUsersAndAccounts);
- mDevice.findObject(new UiSelector().text(titleUsersAndAccounts)).click();
- mDevice.findObject(new UiSelector().text(USERS)).click();
- }
-
-}
diff --git a/tests/app/src/com/android/settings/vpn2/CertInstallerHelper.java b/tests/app/src/com/android/settings/vpn2/CertInstallerHelper.java
deleted file mode 100644
index fa2638ff9951f0ae3cd72b4900a5aba17adfdcdb..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/vpn2/CertInstallerHelper.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (C) 2013 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.settings.vpn2;
-
-import android.os.Environment;
-import android.security.Credentials;
-import android.security.KeyStore;
-import android.util.Log;
-
-import com.android.internal.net.VpnProfile;
-import com.android.org.bouncycastle.asn1.ASN1InputStream;
-import com.android.org.bouncycastle.asn1.ASN1Sequence;
-import com.android.org.bouncycastle.asn1.DEROctetString;
-import com.android.org.bouncycastle.asn1.x509.BasicConstraints;
-
-import junit.framework.Assert;
-
-import libcore.io.Streams;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.KeyStore.PasswordProtection;
-import java.security.KeyStore.PrivateKeyEntry;
-import java.security.PrivateKey;
-import java.security.UnrecoverableEntryException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateEncodingException;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-
-/**
- * Certificate installer helper to extract information from a provided file
- * and install certificates to keystore.
- */
-public class CertInstallerHelper {
- private static final String TAG = "CertInstallerHelper";
- /* Define a password to unlock keystore after it is reset */
- private static final String CERT_STORE_PASSWORD = "password";
- private final int mUid = KeyStore.UID_SELF;
- private PrivateKey mUserKey; // private key
- private X509Certificate mUserCert; // user certificate
- private List mCaCerts = new ArrayList();
- private KeyStore mKeyStore = KeyStore.getInstance();
-
- /**
- * Unlock keystore and set password
- */
- public CertInstallerHelper() {
- mKeyStore.reset();
- mKeyStore.onUserPasswordChanged(CERT_STORE_PASSWORD);
- }
-
- private void extractCertificate(String certFile, String password) {
- InputStream in = null;
- final byte[] raw;
- java.security.KeyStore keystore = null;
- try {
- // Read .p12 file from SDCARD and extract with password
- in = new FileInputStream(new File(
- Environment.getExternalStorageDirectory(), certFile));
- raw = Streams.readFully(in);
-
- keystore = java.security.KeyStore.getInstance("PKCS12");
- PasswordProtection passwordProtection = new PasswordProtection(password.toCharArray());
- keystore.load(new ByteArrayInputStream(raw), passwordProtection.getPassword());
-
- // Install certificates and private keys
- Enumeration aliases = keystore.aliases();
- if (!aliases.hasMoreElements()) {
- Assert.fail("key store failed to put in keychain");
- }
- ArrayList aliasesList = Collections.list(aliases);
- // The keystore is initialized for each test case, there will
- // be only one alias in the keystore
- Assert.assertEquals(1, aliasesList.size());
- String alias = aliasesList.get(0);
- java.security.KeyStore.Entry entry = keystore.getEntry(alias, passwordProtection);
- Log.d(TAG, "extracted alias = " + alias + ", entry=" + entry.getClass());
-
- if (entry instanceof PrivateKeyEntry) {
- Assert.assertTrue(installFrom((PrivateKeyEntry) entry));
- }
- } catch (IOException e) {
- Assert.fail("Failed to read certficate: " + e);
- } catch (KeyStoreException e) {
- Log.e(TAG, "failed to extract certificate" + e);
- } catch (NoSuchAlgorithmException e) {
- Log.e(TAG, "failed to extract certificate" + e);
- } catch (CertificateException e) {
- Log.e(TAG, "failed to extract certificate" + e);
- } catch (UnrecoverableEntryException e) {
- Log.e(TAG, "failed to extract certificate" + e);
- }
- finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException e) {
- Log.e(TAG, "close FileInputStream error: " + e);
- }
- }
- }
- }
-
- /**
- * Extract private keys, user certificates and ca certificates
- */
- private synchronized boolean installFrom(PrivateKeyEntry entry) {
- mUserKey = entry.getPrivateKey();
- mUserCert = (X509Certificate) entry.getCertificate();
-
- Certificate[] certs = entry.getCertificateChain();
- Log.d(TAG, "# certs extracted = " + certs.length);
- mCaCerts = new ArrayList(certs.length);
- for (Certificate c : certs) {
- X509Certificate cert = (X509Certificate) c;
- if (isCa(cert)) {
- mCaCerts.add(cert);
- }
- }
- Log.d(TAG, "# ca certs extracted = " + mCaCerts.size());
- return true;
- }
-
- private boolean isCa(X509Certificate cert) {
- try {
- byte[] asn1EncodedBytes = cert.getExtensionValue("2.5.29.19");
- if (asn1EncodedBytes == null) {
- return false;
- }
- DEROctetString derOctetString = (DEROctetString)
- new ASN1InputStream(asn1EncodedBytes).readObject();
- byte[] octets = derOctetString.getOctets();
- ASN1Sequence sequence = (ASN1Sequence)
- new ASN1InputStream(octets).readObject();
- return BasicConstraints.getInstance(sequence).isCA();
- } catch (IOException e) {
- return false;
- }
- }
-
- /**
- * Extract certificate from the given file, and install it to keystore
- * @param name certificate name
- * @param certFile .p12 file which includes certificates
- * @param password password to extract the .p12 file
- */
- public void installCertificate(VpnProfile profile, String certFile, String password) {
- // extract private keys, certificates from the provided file
- extractCertificate(certFile, password);
- // install certificate to the keystore
- int flags = KeyStore.FLAG_ENCRYPTED;
- try {
- if (mUserKey != null) {
- Log.v(TAG, "has private key");
- String key = Credentials.USER_PRIVATE_KEY + profile.ipsecUserCert;
- byte[] value = mUserKey.getEncoded();
-
- if (!mKeyStore.importKey(key, value, mUid, flags)) {
- Log.e(TAG, "Failed to install " + key + " as user " + mUid);
- return;
- }
- Log.v(TAG, "install " + key + " as user " + mUid + " is successful");
- }
-
- if (mUserCert != null) {
- String certName = Credentials.USER_CERTIFICATE + profile.ipsecUserCert;
- byte[] certData = Credentials.convertToPem(mUserCert);
-
- if (!mKeyStore.put(certName, certData, mUid, flags)) {
- Log.e(TAG, "Failed to install " + certName + " as user " + mUid);
- return;
- }
- Log.v(TAG, "install " + certName + " as user" + mUid + " is successful.");
- }
-
- if (!mCaCerts.isEmpty()) {
- String caListName = Credentials.CA_CERTIFICATE + profile.ipsecCaCert;
- X509Certificate[] caCerts = mCaCerts.toArray(new X509Certificate[mCaCerts.size()]);
- byte[] caListData = Credentials.convertToPem(caCerts);
-
- if (!mKeyStore.put(caListName, caListData, mUid, flags)) {
- Log.e(TAG, "Failed to install " + caListName + " as user " + mUid);
- return;
- }
- Log.v(TAG, " install " + caListName + " as user " + mUid + " is successful");
- }
- } catch (CertificateEncodingException e) {
- Log.e(TAG, "Exception while convert certificates to pem " + e);
- throw new AssertionError(e);
- } catch (IOException e) {
- Log.e(TAG, "IOException while convert to pem: " + e);
- }
- }
-
- public int getUid() {
- return mUid;
- }
-}
diff --git a/tests/app/src/com/android/settings/vpn2/VpnInfo.java b/tests/app/src/com/android/settings/vpn2/VpnInfo.java
deleted file mode 100644
index ab7fb0f3d07b82fd92ca7d53fa9441d5261fb139..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/vpn2/VpnInfo.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2013 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.settings.vpn2;
-
-import com.android.internal.net.VpnProfile;
-
-/**
- * Wrapper for VPN Profile and associated certificate files
- */
-public class VpnInfo {
- // VPN Profile
- private VpnProfile mVpnProfile;
- // Certificate file in PC12 format for user certificates and private keys
- private String mCertificateFile = null;
- // Password to extract certificates from the file
- private String mPassword = null;
-
- public VpnInfo(VpnProfile vpnProfile, String certFile, String password) {
- mVpnProfile = vpnProfile;
- mCertificateFile = certFile;
- mPassword = password;
- }
-
- public VpnInfo(VpnProfile vpnProfile) {
- mVpnProfile = vpnProfile;
- }
-
- public void setVpnProfile(VpnProfile vpnProfile) {
- mVpnProfile = vpnProfile;
- }
-
- public void setCertificateFile(String certFile) {
- mCertificateFile = certFile;
- }
-
- public void setPassword(String password) {
- mPassword = password;
- }
-
- public VpnProfile getVpnProfile() {
- return mVpnProfile;
- }
-
- public String getCertificateFile() {
- return mCertificateFile;
- }
-
- public String getPassword() {
- return mPassword;
- }
-}
diff --git a/tests/app/src/com/android/settings/vpn2/VpnProfileParser.java b/tests/app/src/com/android/settings/vpn2/VpnProfileParser.java
deleted file mode 100644
index 51c2550eb1d7552e2c182a253d04a90607da2b16..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/vpn2/VpnProfileParser.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (C) 2013 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.settings.vpn2;
-
-import android.util.Log;
-
-import com.android.internal.net.VpnProfile;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-/**
- * Parse VPN profiles from an XML file
- */
-public class VpnProfileParser {
- private final static String TAG = "VpnProfileParser";
- private static Map mVpnPool = new HashMap();
-
- static DefaultHandler mHandler = new DefaultHandler() {
- boolean name;
- boolean type;
- boolean server;
- boolean username;
- boolean password;
- boolean dnsServers;
- boolean searchDomains;
- boolean routes;
- boolean mppe;
- boolean l2tpSecret;
- boolean ipsecIdentifier;
- boolean ipsecSecret;
- boolean ipsecUserCert;
- boolean ipsecCaCert;
- boolean ipsecServerCert;
- boolean certFile;
- boolean certFilePassword;
- VpnProfile profile = null;
- VpnInfo vpnInfo = null;
-
-
- @Override
- public void startElement(String uri, String localName, String tagName,
- Attributes attributes) throws SAXException {
- if (tagName.equalsIgnoreCase("vpn")) {
- //create a new VPN profile
- profile = new VpnProfile(Long.toHexString(System.currentTimeMillis()));
- vpnInfo = new VpnInfo(profile);
- }
- if (tagName.equalsIgnoreCase("name")) {
- name = true;
- }
- if (tagName.equalsIgnoreCase("type")) {
- type = true;
- }
- if (tagName.equalsIgnoreCase("server")) {
- server = true;
- }
- if (tagName.equalsIgnoreCase("username")) {
- username = true;
- }
- if (tagName.equalsIgnoreCase("password")) {
- password = true;
- }
- if (tagName.equalsIgnoreCase("dnsServers")) {
- dnsServers = true;
- }
- if (tagName.equalsIgnoreCase("searchDomains")) {
- searchDomains = true;
- }
- if (tagName.equalsIgnoreCase("mppe")) {
- mppe = true;
- }
- if (tagName.equalsIgnoreCase("l2tpSecret")) {
- l2tpSecret = true;
- }
- if (tagName.equalsIgnoreCase("ipsecIdentifier")) {
- ipsecIdentifier = true;
- }
- if (tagName.equalsIgnoreCase("ipsecSecret")) {
- ipsecSecret = true;
- }
- if (tagName.equalsIgnoreCase("ipsecUserCert")) {
- ipsecUserCert = true;
- }
- if (tagName.equalsIgnoreCase("ipsecCaCert")) {
- ipsecCaCert = true;
- }
- if (tagName.equalsIgnoreCase("ipsecServerCert")) {
- ipsecServerCert = true;
- }
- if (tagName.equalsIgnoreCase("routes")) {
- routes = true;
- }
- if (tagName.equalsIgnoreCase("cert-file")) {
- certFile = true;
- }
- if (tagName.equalsIgnoreCase("cert-file-password")) {
- certFilePassword = true;
- }
- }
-
- @Override
- public void endElement(String uri, String localName, String tagName) throws SAXException {
- if (tagName.equalsIgnoreCase("vpn")) {
- mVpnPool.put(profile.type, vpnInfo);
- }
- }
-
- @Override
- public void characters(char ch[], int start, int length) throws SAXException {
- String strValue = new String(ch, start, length);
- if (name) {
- profile.name = strValue;
- name = false;
- }
- if (type) {
- int t = getVpnProfileType(strValue);
- if (t < 0) {
- throw new SAXException("not a valid VPN type");
- } else {
- profile.type = t;
- }
- type = false;
- }
- if (server) {
- profile.server = strValue;
- server = false;
- }
- if (username) {
- profile.username = strValue;
- username = false;
- }
- if (password) {
- profile.password = strValue;
- password = false;
- }
- if (dnsServers) {
- profile.dnsServers = strValue;
- dnsServers = false;
- }
- if (searchDomains) {
- profile.searchDomains = strValue;
- searchDomains = false;
- }
- if (mppe) {
- profile.mppe = Boolean.valueOf(strValue);
- mppe = false;
- }
- if (l2tpSecret) {
- profile.l2tpSecret = strValue;
- l2tpSecret = false;
- }
- if (ipsecIdentifier) {
- profile.ipsecIdentifier = strValue;
- ipsecIdentifier = false;
- }
- if (ipsecSecret) {
- profile.ipsecSecret = strValue;
- ipsecSecret = false;
- }
- if (ipsecUserCert) {
- profile.ipsecUserCert = strValue;
- ipsecUserCert = false;
- }
- if (ipsecCaCert) {
- profile.ipsecCaCert = strValue;
- ipsecCaCert = false;
- }
- if (ipsecServerCert) {
- profile.ipsecServerCert = strValue;
- ipsecServerCert = false;
- }
- if (routes) {
- profile.routes = strValue;
- routes = false;
- }
- if (certFile) {
- vpnInfo.setCertificateFile(strValue);
- certFile = false;
- }
- if (certFilePassword) {
- vpnInfo.setPassword(strValue);
- certFilePassword = false;
- }
- }
-
- private int getVpnProfileType(String type) {
- if (type.equalsIgnoreCase("TYPE_PPTP")) {
- return VpnProfile.TYPE_PPTP;
- } else if (type.equalsIgnoreCase("TYPE_L2TP_IPSEC_PSK")) {
- return VpnProfile.TYPE_L2TP_IPSEC_PSK;
- } else if (type.equalsIgnoreCase("TYPE_L2TP_IPSEC_RSA")) {
- return VpnProfile.TYPE_L2TP_IPSEC_RSA;
- } else if (type.equalsIgnoreCase("TYPE_IPSEC_XAUTH_PSK")) {
- return VpnProfile.TYPE_IPSEC_XAUTH_PSK;
- } else if (type.equalsIgnoreCase("TYPE_IPSEC_XAUTH_RSA")) {
- return VpnProfile.TYPE_IPSEC_XAUTH_RSA;
- } else if (type.equalsIgnoreCase("TYPE_IPSEC_HYBRID_RSA")) {
- return VpnProfile.TYPE_IPSEC_HYBRID_RSA;
- } else {
- Log.v(TAG, "Invalid VPN type: " + type);
- return -1;
- }
- }
- };
-
- public static Map parse(InputStream in) {
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- SAXParser saxParser = factory.newSAXParser();
- saxParser.parse(in, mHandler);
- } catch (SAXException e) {
- Log.e(TAG, "Parse vpn profile exception: " + e.toString());
- } catch (IOException e) {
- Log.e(TAG, "Parse vpn profile exception: " + e.toString());
- } catch (ParserConfigurationException e) {
- Log.e(TAG, "Parse vpn profile exception: " + e.toString());
- } finally {
- return mVpnPool;
- }
- }
-}
diff --git a/tests/app/src/com/android/settings/vpn2/VpnTests.java b/tests/app/src/com/android/settings/vpn2/VpnTests.java
deleted file mode 100644
index 11e82655c69e9cb2561129a064fdea305a229ec1..0000000000000000000000000000000000000000
--- a/tests/app/src/com/android/settings/vpn2/VpnTests.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * Copyright (C) 2013 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.settings.vpn2;
-
-import android.content.Context;
-import android.net.IConnectivityManager;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.UserHandle;
-import android.security.Credentials;
-import android.security.KeyStore;
-import android.security.NetworkSecurityPolicy;
-import android.test.InstrumentationTestCase;
-import android.test.InstrumentationTestRunner;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-
-import com.android.internal.net.LegacyVpnInfo;
-import com.android.internal.net.VpnConfig;
-import com.android.internal.net.VpnProfile;
-
-import java.net.HttpURLConnection;
-import java.net.URL;
-import junit.framework.Assert;
-
-import libcore.io.Streams;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Legacy VPN connection tests
- *
- * To run the test, use command:
- * adb shell am instrument -e class com.android.settings.vpn2.VpnTests -e profile foo.xml
- * -w com.android.settings.tests/android.test.InstrumentationTestRunner
- *
- * VPN profiles are saved in an xml file and will be loaded through {@link VpnProfileParser}.
- * Push the profile (foo.xml) to the external storage, e.g adb push foo.xml /sdcard/ before running
- * the above command.
- *
- * A typical profile looks like the following:
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- * VPN types include: TYPE_PPTP, TYPE_L2TP_IPSEC_PSK, TYPE_L2TP_IPSEC_RSA,
- * TYPE_IPSEC_XAUTH_PSK, TYPE_IPSEC_XAUTH_RSA, TYPE_IPSEC_HYBRID_RSA
- */
-public class VpnTests extends InstrumentationTestCase {
- private static final String TAG = "VpnTests";
- /* Maximum time to wait for VPN connection */
- private static final long MAX_CONNECTION_TIME = 5 * 60 * 1000;
- private static final long VPN_STAY_TIME = 60 * 1000;
- private static final int MAX_DISCONNECTION_TRIES = 3;
- private static final String EXTERNAL_SERVER =
- "http://ip2country.sourceforge.net/ip2c.php?format=JSON";
- private static final String VPN_INTERFACE = "ppp0";
- private final IConnectivityManager mService = IConnectivityManager.Stub
- .asInterface(ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
- private Map mVpnInfoPool = null;
- private Context mContext;
- private CertInstallerHelper mCertHelper = null;
- private KeyStore mKeyStore = KeyStore.getInstance();
- private String mPreviousIpAddress = null;
- private boolean DEBUG = false;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- InputStream in = null;
- InstrumentationTestRunner mRunner = (InstrumentationTestRunner)getInstrumentation();
- mContext = mRunner.getContext();
- Bundle arguments = mRunner.getArguments();
- String PROFILE_NAME = arguments.getString("profile");
- Assert.assertNotNull("Push profile to external storage and load with"
- + "'-e profile '", PROFILE_NAME);
- File profileFile = new File(Environment.getExternalStorageDirectory(), PROFILE_NAME);
- in = new FileInputStream(profileFile);
- mVpnInfoPool = VpnProfileParser.parse(in);
- Assert.assertNotNull("no VPN profiles are parsed", mVpnInfoPool);
- if (DEBUG) {
- Log.v(TAG, "print out the vpn profiles");
- for (Map.Entry profileEntrySet: mVpnInfoPool.entrySet()) {
- VpnInfo vpnInfo = profileEntrySet.getValue();
- printVpnProfile(vpnInfo.getVpnProfile());
- if (vpnInfo.getCertificateFile() != null) {
- Log.d(TAG, "certificate file for this vpn is " + vpnInfo.getCertificateFile());
- }
- if (vpnInfo.getPassword() != null) {
- Log.d(TAG, "password for the certificate file is: " + vpnInfo.getPassword());
- }
- }
- }
- // disconnect existing vpn if there is any
- LegacyVpnInfo oldVpn = mService.getLegacyVpnInfo(UserHandle.myUserId());
- if (oldVpn != null) {
- Log.v(TAG, "disconnect legacy VPN");
- disconnect();
- // wait till the legacy VPN is disconnected.
- int tries = 0;
- while (tries < MAX_DISCONNECTION_TRIES &&
- mService.getLegacyVpnInfo(UserHandle.myUserId()) != null) {
- tries++;
- Thread.sleep(10 * 1000);
- Log.v(TAG, "Wait for legacy VPN to be disconnected.");
- }
- Assert.assertNull("Failed to disconect VPN",
- mService.getLegacyVpnInfo(UserHandle.myUserId()));
- // wait for 30 seconds after the previous VPN is disconnected.
- sleep(30 * 1000);
- }
- // Create CertInstallerHelper to initialize the keystore
- mCertHelper = new CertInstallerHelper();
- }
-
- @Override
- protected void tearDown() throws Exception {
- sleep(VPN_STAY_TIME);
- super.tearDown();
- }
-
- private void printVpnProfile(VpnProfile profile) {
- Log.v(TAG, "profile: ");
- Log.v(TAG, "key: " + profile.key);
- Log.v(TAG, "name: " + profile.name);
- Log.v(TAG, "type: " + profile.type);
- Log.v(TAG, "server: " + profile.server);
- Log.v(TAG, "username: " + profile.username);
- Log.v(TAG, "password: " + profile.password);
- Log.v(TAG, "dnsServers: " + profile.dnsServers);
- Log.v(TAG, "searchDomains: " + profile.searchDomains);
- Log.v(TAG, "routes: " + profile.routes);
- Log.v(TAG, "mppe: " + profile.mppe);
- Log.v(TAG, "l2tpSecret: " + profile.l2tpSecret);
- Log.v(TAG, "ipsecIdentifier: " + profile.ipsecIdentifier);
- Log.v(TAG, "ipsecSecret: " + profile.ipsecSecret);
- Log.v(TAG, "ipsecUserCert: " + profile.ipsecUserCert);
- Log.v(TAG, "ipsecCaCert: " + profile.ipsecCaCert);
- Log.v(TAG, "ipsecServerCert: " + profile.ipsecServerCert);
- }
-
- private void printKeyStore(VpnProfile profile) {
- // print out the information from keystore
- String privateKey = "";
- String userCert = "";
- String caCert = "";
- String serverCert = "";
- if (!profile.ipsecUserCert.isEmpty()) {
- privateKey = Credentials.USER_PRIVATE_KEY + profile.ipsecUserCert;
- byte[] value = mKeyStore.get(Credentials.USER_CERTIFICATE + profile.ipsecUserCert);
- userCert = (value == null) ? null : new String(value, StandardCharsets.UTF_8);
- }
- if (!profile.ipsecCaCert.isEmpty()) {
- byte[] value = mKeyStore.get(Credentials.CA_CERTIFICATE + profile.ipsecCaCert);
- caCert = (value == null) ? null : new String(value, StandardCharsets.UTF_8);
- }
- if (!profile.ipsecServerCert.isEmpty()) {
- byte[] value = mKeyStore.get(Credentials.USER_CERTIFICATE + profile.ipsecServerCert);
- serverCert = (value == null) ? null : new String(value, StandardCharsets.UTF_8);
- }
- Log.v(TAG, "privateKey: \n" + ((privateKey == null) ? "" : privateKey));
- Log.v(TAG, "userCert: \n" + ((userCert == null) ? "" : userCert));
- Log.v(TAG, "caCert: \n" + ((caCert == null) ? "" : caCert));
- Log.v(TAG, "serverCert: \n" + ((serverCert == null) ? "" : serverCert));
- }
-
- /**
- * Connect legacy VPN
- */
- private void connect(VpnProfile profile) throws Exception {
- try {
- mService.startLegacyVpn(profile);
- } catch (IllegalStateException e) {
- fail(String.format("start legacy vpn: %s failed: %s", profile.name, e.toString()));
- }
- }
-
- /**
- * Disconnect legacy VPN
- */
- private void disconnect() throws Exception {
- try {
- mService.prepareVpn(VpnConfig.LEGACY_VPN, VpnConfig.LEGACY_VPN, UserHandle.myUserId());
- } catch (RemoteException e) {
- Log.e(TAG, String.format("disconnect VPN exception: %s", e.toString()));
- }
- }
-
- /**
- * Get external IP address
- */
- private String getIpAddress() {
- String ip = null;
- HttpURLConnection urlConnection = null;
- // TODO: Rewrite this test to use an HTTPS URL.
- // Because this test uses cleartext HTTP, the network security policy of this app needs to
- // be temporarily relaxed to permit such traffic.
- NetworkSecurityPolicy networkSecurityPolicy = NetworkSecurityPolicy.getInstance();
- boolean cleartextTrafficPermittedBeforeTest =
- networkSecurityPolicy.isCleartextTrafficPermitted();
- networkSecurityPolicy.setCleartextTrafficPermitted(true);
- try {
- URL url = new URL(EXTERNAL_SERVER);
- urlConnection = (HttpURLConnection) url.openConnection();
- Log.i(TAG, "Response from httpget: " + urlConnection.getResponseCode());
-
- InputStream is = urlConnection.getInputStream();
- String response;
- try {
- response = new String(Streams.readFully(is), StandardCharsets.UTF_8);
- } finally {
- is.close();
- }
-
- JSONObject json_data = new JSONObject(response);
- ip = json_data.getString("ip");
- Log.v(TAG, "json_data: " + ip);
- } catch (IllegalArgumentException e) {
- Log.e(TAG, "exception while getting external IP: " + e.toString());
- } catch (IOException e) {
- Log.e(TAG, "IOException while getting IP: " + e.toString());
- } catch (JSONException e) {
- Log.e(TAG, "exception while creating JSONObject: " + e.toString());
- } finally {
- networkSecurityPolicy.setCleartextTrafficPermitted(cleartextTrafficPermittedBeforeTest);
- if (urlConnection != null) {
- urlConnection.disconnect();
- }
- }
- return ip;
- }
-
- /**
- * Verify the vpn connection by checking the VPN state and external IP
- */
- private void validateVpnConnection(VpnProfile profile) throws Exception {
- validateVpnConnection(profile, false);
- }
-
- /**
- * Verify the vpn connection by checking the VPN state, external IP or ping test
- */
- private void validateVpnConnection(VpnProfile profile, boolean pingTestFlag) throws Exception {
- LegacyVpnInfo legacyVpnInfo = mService.getLegacyVpnInfo(UserHandle.myUserId());
- Assert.assertTrue(legacyVpnInfo != null);
-
- long start = System.currentTimeMillis();
- while (((System.currentTimeMillis() - start) < MAX_CONNECTION_TIME) &&
- (legacyVpnInfo.state != LegacyVpnInfo.STATE_CONNECTED)) {
- Log.v(TAG, "vpn state: " + legacyVpnInfo.state);
- sleep(10 * 1000);
- legacyVpnInfo = mService.getLegacyVpnInfo(UserHandle.myUserId());
- }
-
- // the vpn state should be CONNECTED
- Assert.assertTrue(legacyVpnInfo.state == LegacyVpnInfo.STATE_CONNECTED);
- if (pingTestFlag) {
- Assert.assertTrue(pingTest(profile.server));
- } else {
- String curIpAddress = getIpAddress();
- // the outgoing IP address should be the same as the VPN server address
- Assert.assertEquals(profile.server, curIpAddress);
- }
- }
-
- private boolean pingTest(String server) {
- final long PING_TIMER = 3 * 60 * 1000; // 3 minutes
- if (server == null || server.isEmpty()) {
- return false;
- }
- long startTime = System.currentTimeMillis();
- while ((System.currentTimeMillis() - startTime) < PING_TIMER) {
- try {
- Log.v(TAG, "Start ping test, ping " + server);
- Process p = Runtime.getRuntime().exec("ping -c 10 -w 100 " + server);
- int status = p.waitFor();
- if (status == 0) {
- // if any of the ping test is successful, return true
- return true;
- }
- } catch (UnknownHostException e) {
- Log.e(TAG, "Ping test Fail: Unknown Host");
- } catch (IOException e) {
- Log.e(TAG, "Ping test Fail: IOException");
- } catch (InterruptedException e) {
- Log.e(TAG, "Ping test Fail: InterruptedException");
- }
- }
- // ping test timeout
- return false;
- }
-
- /**
- * Install certificates from a file loaded in external stroage on the device
- * @param profile vpn profile
- * @param fileName certificate file name
- * @param password password to extract certificate file
- */
- private void installCertificatesFromFile(VpnProfile profile, String fileName, String password)
- throws Exception {
- if (profile == null || fileName == null || password == null) {
- throw new Exception ("vpn profile, certificate file name and password can not be null");
- }
-
- int curUid = mContext.getUserId();
- mCertHelper.installCertificate(profile, fileName, password);
-
- if (DEBUG) {
- printKeyStore(profile);
- }
- }
-
- private void sleep(long time) {
- try {
- Thread.sleep(time);
- } catch (InterruptedException e) {
- Log.e(TAG, "interrupted: " + e.toString());
- }
- }
-
- /**
- * Test PPTP VPN connection
- */
- @LargeTest
- public void testPPTPConnection() throws Exception {
- mPreviousIpAddress = getIpAddress();
- VpnInfo curVpnInfo = mVpnInfoPool.get(VpnProfile.TYPE_PPTP);
- VpnProfile vpnProfile = curVpnInfo.getVpnProfile();
- connect(vpnProfile);
- validateVpnConnection(vpnProfile);
- }
-
- /**
- * Test L2TP/IPSec PSK VPN connection
- */
- @LargeTest
- public void testL2tpIpsecPskConnection() throws Exception {
- mPreviousIpAddress = getIpAddress();
- VpnInfo curVpnInfo = mVpnInfoPool.get(VpnProfile.TYPE_L2TP_IPSEC_PSK);
- VpnProfile vpnProfile = curVpnInfo.getVpnProfile();
- connect(vpnProfile);
- validateVpnConnection(vpnProfile);
- }
-
- /**
- * Test L2TP/IPSec RSA VPN connection
- */
- @LargeTest
- public void testL2tpIpsecRsaConnection() throws Exception {
- mPreviousIpAddress = getIpAddress();
- VpnInfo curVpnInfo = mVpnInfoPool.get(VpnProfile.TYPE_L2TP_IPSEC_RSA);
- VpnProfile vpnProfile = curVpnInfo.getVpnProfile();
- if (DEBUG) {
- printVpnProfile(vpnProfile);
- }
- String certFile = curVpnInfo.getCertificateFile();
- String password = curVpnInfo.getPassword();
- installCertificatesFromFile(vpnProfile, certFile, password);
- connect(vpnProfile);
- validateVpnConnection(vpnProfile);
- }
-
- /**
- * Test IPSec Xauth RSA VPN connection
- */
- @LargeTest
- public void testIpsecXauthRsaConnection() throws Exception {
- mPreviousIpAddress = getIpAddress();
- VpnInfo curVpnInfo = mVpnInfoPool.get(VpnProfile.TYPE_IPSEC_XAUTH_RSA);
- VpnProfile vpnProfile = curVpnInfo.getVpnProfile();
- if (DEBUG) {
- printVpnProfile(vpnProfile);
- }
- String certFile = curVpnInfo.getCertificateFile();
- String password = curVpnInfo.getPassword();
- installCertificatesFromFile(vpnProfile, certFile, password);
- connect(vpnProfile);
- validateVpnConnection(vpnProfile);
- }
-
- /**
- * Test IPSec Xauth PSK VPN connection
- */
- @LargeTest
- public void testIpsecXauthPskConnection() throws Exception {
- VpnInfo curVpnInfo = mVpnInfoPool.get(VpnProfile.TYPE_IPSEC_XAUTH_PSK);
- VpnProfile vpnProfile = curVpnInfo.getVpnProfile();
- if (DEBUG) {
- printVpnProfile(vpnProfile);
- }
- connect(vpnProfile);
- validateVpnConnection(vpnProfile, true);
- }
-
- /**
- * Test IPSec Hybrid RSA VPN connection
- */
- @LargeTest
- public void testIpsecHybridRsaConnection() throws Exception {
- mPreviousIpAddress = getIpAddress();
- VpnInfo curVpnInfo = mVpnInfoPool.get(VpnProfile.TYPE_IPSEC_HYBRID_RSA);
- VpnProfile vpnProfile = curVpnInfo.getVpnProfile();
- if (DEBUG) {
- printVpnProfile(vpnProfile);
- }
- connect(vpnProfile);
- validateVpnConnection(vpnProfile);
- }
-}
diff --git a/tests/robotests/Android.mk b/tests/robotests/Android.mk
deleted file mode 100644
index ae0102feaab97b82a0d22a798afb5d1f573dd91e..0000000000000000000000000000000000000000
--- a/tests/robotests/Android.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-#############################################
-# Settings Robolectric test target. #
-#############################################
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-# Include the testing libraries (JUnit4 + Robolectric libs).
-LOCAL_STATIC_JAVA_LIBRARIES := \
- mockito-robolectric-prebuilt \
- truth-prebuilt
-
-LOCAL_JAVA_LIBRARIES := \
- junit \
- platform-robolectric-prebuilt \
- sdk_vcurrent \
- telephony-common
-
-LOCAL_INSTRUMENTATION_FOR := Settings
-LOCAL_MODULE := SettingsRoboTests
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-#############################################################
-# Settings runner target to run the previous target. #
-#############################################################
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := RunSettingsRoboTests
-
-LOCAL_SDK_VERSION := current
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
- SettingsRoboTests
-
-LOCAL_TEST_PACKAGE := Settings
-
-LOCAL_INSTRUMENT_SOURCE_DIRS := $(dir $(LOCAL_PATH))../src
-
-include prebuilts/misc/common/robolectric/run_robotests.mk
\ No newline at end of file
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
deleted file mode 100644
index 462388941c86fe00f6b1c2dd4f1c92bc1efa6d58..0000000000000000000000000000000000000000
--- a/tests/robotests/assets/grandfather_not_implementing_index_provider
+++ /dev/null
@@ -1,15 +0,0 @@
-com.android.settings.bluetooth.DevicePickerFragment
-com.android.settings.bluetooth.BluetoothDeviceDetailsFragment
-com.android.settings.bluetooth.BluetoothPairingDetail
-com.android.settings.accounts.AccountDetailDashboardFragment
-com.android.settings.fuelgauge.PowerUsageAnomalyDetails
-com.android.settings.fuelgauge.AdvancedPowerUsageDetail
-com.android.settings.deviceinfo.StorageProfileFragment
-com.android.settings.wifi.details.WifiNetworkDetailsFragment
-com.android.settings.wifi.p2p.WifiP2pSettings
-com.android.settings.enterprise.ApplicationListFragment$AdminGrantedPermissionCamera
-com.android.settings.enterprise.ApplicationListFragment$AdminGrantedPermissionLocation
-com.android.settings.enterprise.ApplicationListFragment$AdminGrantedPermissionMicrophone
-com.android.settings.enterprise.ApplicationListFragment$EnterpriseInstalledPackages
-com.android.settings.enterprise.EnterpriseSetDefaultAppsListFragment
-com.android.settings.wifi.tether.WifiTetherSettings
diff --git a/tests/robotests/assets/grandfather_not_implementing_indexable b/tests/robotests/assets/grandfather_not_implementing_indexable
deleted file mode 100644
index 1a978cdb421f1601587a10a8edb97574694617b9..0000000000000000000000000000000000000000
--- a/tests/robotests/assets/grandfather_not_implementing_indexable
+++ /dev/null
@@ -1,93 +0,0 @@
-com.android.settings.location.LocationMode
-com.android.settings.notification.ZenModePrioritySettings
-com.android.settings.notification.ZenModeVisualInterruptionSettings
-com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment
-com.android.settings.deviceinfo.SimStatus
-com.android.settings.deviceinfo.PrivateVolumeForget
-com.android.settings.inputmethod.SpellCheckersSettings
-com.android.settings.inputmethod.KeyboardLayoutPickerFragment
-com.android.settings.notification.ZenModeEventRuleSettings
-com.android.settings.fuelgauge.InactiveApps
-com.android.settings.accessibility.CaptionPropertiesFragment
-com.android.settings.accessibility.AccessibilitySettingsForSetupWizard
-com.android.settings.deviceinfo.ImeiInformation
-com.android.settings.datausage.DataUsageList
-com.android.settings.vpn2.AppManagementFragment
-com.android.settings.display.NightDisplaySettings
-com.android.settings.vpn2.VpnSettings
-com.android.settings.fingerprint.FingerprintSettings$FingerprintSettingsFragment
-com.android.settings.applications.ProcessStatsDetail
-com.android.settings.wifi.WifiInfo
-com.android.settings.applications.VrListenerSettings
-com.android.settings.inputmethod.UserDictionaryList
-com.android.settings.datausage.DataSaverSummary
-com.android.settings.notification.ChannelNotificationSettings
-com.android.settings.datausage.AppDataUsage
-com.android.settings.datausage.DataPlanUsageSummary
-com.android.settings.accessibility.FontSizePreferenceFragmentForSetupWizard
-com.android.settings.applications.ManageDomainUrls
-com.android.settings.applications.WriteSettingsDetails
-com.android.settings.location.LocationSettings
-com.android.settings.applications.ProcessStatsSummary
-com.android.settings.users.RestrictedProfileSettings
-com.android.settings.accounts.ChooseAccountActivity
-com.android.settings.accounts.ManagedProfileSettings
-com.android.settings.accessibility.ToggleAutoclickPreferenceFragment
-com.android.settings.applications.AppLaunchSettings
-com.android.settings.fuelgauge.BatterySaverSettings
-com.android.settings.location.ScanningSettings
-com.android.settings.tts.TextToSpeechSettings
-com.android.settings.applications.ProcessStatsUi
-com.android.settings.notification.ZenModeScheduleRuleSettings
-com.android.settings.datausage.BillingCycleSettings
-com.android.settings.notification.NotificationStation
-com.android.settings.print.PrintJobSettingsFragment
-com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupWizard
-com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard
-com.android.settings.accounts.AccountSyncSettings
-com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment
-com.android.settings.inputmethod.InputMethodAndSubtypeEnabler
-com.android.settings.applications.DrawOverlayDetails
-com.android.settings.backup.ToggleBackupSettingFragment
-com.android.settings.users.UserDetailsSettings
-com.android.settings.datausage.UnrestrictedDataAccess
-com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentForSetupWizard
-com.android.settings.fuelgauge.BatteryHistoryDetail
-com.android.settings.applications.RunningServices
-com.android.settings.applications.ConfirmConvertToFbe
-com.android.settings.deviceinfo.PublicVolumeSettings
-com.android.settings.applications.InstalledAppDetails
-com.android.settings.accessibility.ToggleAccessibilityServicePreferenceFragment
-com.android.settings.print.PrintServiceSettingsFragment
-com.android.settings.wfd.WifiDisplaySettings
-com.android.settings.notification.AppNotificationSettings
-com.android.settings.deviceinfo.PrivateVolumeSettings
-com.android.settings.users.AppRestrictionsFragment
-com.android.settings.deviceinfo.PrivateVolumeUnmount
-com.android.settings.notification.ZenAccessSettings
-com.android.settings.accessibility.ToggleFontSizePreferenceFragment
-com.android.settings.applications.PremiumSmsAccess
-com.android.settings.applications.UsageAccessDetails
-com.android.settings.applications.AppStorageSettings
-com.android.settings.notification.NotificationAccessSettings
-com.android.settings.notification.ZenModeSettings
-com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment
-com.android.settings.localepicker.LocaleListEditor
-com.android.settings.qstile.DevelopmentTileConfigActivity$DevelopmentTileConfigFragment
-com.android.settings.applications.ExternalSourcesDetails
-com.android.settings.applications.PictureInPictureSettings
-com.android.settings.applications.PictureInPictureDetails
-com.android.settings.ApnSettings
-com.android.settings.SecuritySettings$SecuritySubSettings
-com.android.settings.PrivacySettings
-com.android.settings.WifiCallingSettings
-com.android.settings.password.SetupChooseLockGeneric$SetupChooseLockGenericFragment
-com.android.settings.SetupRedactionInterstitial$SetupRedactionInterstitialFragment
-com.android.settings.TrustAgentSettings
-com.android.settings.password.ChooseLockGeneric$ChooseLockGenericFragment
-com.android.settings.IccLockSettings
-com.android.settings.TetherSettings
-com.android.settings.ApplicationSettings
-com.android.settings.ApnEditor
-com.android.settings.UserCredentialsSettings
-com.android.settings.TestingSettings
diff --git a/tests/robotests/assets/grandfather_not_implementing_instrumentable b/tests/robotests/assets/grandfather_not_implementing_instrumentable
deleted file mode 100644
index 64b5c83bd05d13251308a97904d7bcfa93cdd88b..0000000000000000000000000000000000000000
--- a/tests/robotests/assets/grandfather_not_implementing_instrumentable
+++ /dev/null
@@ -1,9 +0,0 @@
-com.android.settings.deletionhelper.ActivationWarningFragment
-com.android.settings.applications.AppOpsCategory
-com.android.settings.inputmethod.UserDictionaryLocalePicker
-com.android.settings.CustomListPreference$CustomListPreferenceDialogFragment
-com.android.settings.password.ChooseLockPassword$SaveAndFinishWorker
-com.android.settings.password.ChooseLockPattern$SaveAndFinishWorker
-com.android.settings.RestrictedListPreference$RestrictedListPreferenceDialogFragment
-com.android.settings.password.ConfirmDeviceCredentialBaseFragment$LastTryDialog
-com.android.settings.password.CredentialCheckResultTracker
diff --git a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
deleted file mode 100644
index 948b14ad70c99d0906d90faed1bb1bf0f25ece19..0000000000000000000000000000000000000000
--- a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
+++ /dev/null
@@ -1 +0,0 @@
-com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
diff --git a/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider b/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
deleted file mode 100644
index b3290725c98cf53a1746fac525413fd0e0704f13..0000000000000000000000000000000000000000
--- a/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
+++ /dev/null
@@ -1 +0,0 @@
-com.android.settings.fuelgauge.PowerUsageSummary
diff --git a/tests/robotests/assets/whitelist_duplicate_index_key b/tests/robotests/assets/whitelist_duplicate_index_key
deleted file mode 100644
index a761f35408663e20e3cc90b32612eba6143ed714..0000000000000000000000000000000000000000
--- a/tests/robotests/assets/whitelist_duplicate_index_key
+++ /dev/null
@@ -1,5 +0,0 @@
-add_users_when_locked
-additional_system_update_settings
-dashboard_tile_placeholder
-screen_zoom
-usage_access
diff --git a/tests/robotests/res/drawable/selectable_card.xml b/tests/robotests/res/drawable/selectable_card.xml
deleted file mode 100644
index 8d1274a86ca25854791b0d217488f714879c7bd6..0000000000000000000000000000000000000000
--- a/tests/robotests/res/drawable/selectable_card.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml b/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml
deleted file mode 100644
index cedf5b9eb624a62923e5f78337165cb51efee3c1..0000000000000000000000000000000000000000
--- a/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/robotests/res/layout/preference.xml b/tests/robotests/res/layout/preference.xml
deleted file mode 100644
index 3f73161ba416727900b95f00cf9dbe9ce133642e..0000000000000000000000000000000000000000
--- a/tests/robotests/res/layout/preference.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/robotests/res/values/config.xml b/tests/robotests/res/values/config.xml
deleted file mode 100644
index 156e20aef83cb37ae8661f59f644712d2be3eaea..0000000000000000000000000000000000000000
--- a/tests/robotests/res/values/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- true
-
\ No newline at end of file
diff --git a/tests/robotests/res/values/themes.xml b/tests/robotests/res/values/themes.xml
deleted file mode 100644
index b91df657ce02d75d0b769ac96316271a8be62a6f..0000000000000000000000000000000000000000
--- a/tests/robotests/res/values/themes.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/tests/robotests/src/android/app/admin/PasswordMetrics.java b/tests/robotests/src/android/app/admin/PasswordMetrics.java
deleted file mode 100644
index a46130661b0cc51a92c3fc8abc3dece937df1508..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/app/admin/PasswordMetrics.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-package android.app.admin;
-
-import android.annotation.NonNull;
-
-/**
- * Stub implementation of framework's PasswordMetrics for Robolectric tests. Otherwise Robolectric
- * is throwing ClassNotFoundError.
- *
- * TODO: Remove this class when Robolectric supports O
- */
-public class PasswordMetrics {
-
- // Maximum allowed number of repeated or ordered characters in a sequence before we'll
- // consider it a complex PIN/password.
- public static final int MAX_ALLOWED_SEQUENCE = 3;
-
- public int length = 0;
- public int letters = 0;
- public int upperCase = 0;
- public int lowerCase = 0;
- public int numeric = 0;
- public int symbols = 0;
- public int nonLetter = 0;
-
- public static int maxLengthSequence(@NonNull String string) {
- // Stub implementation
- return 1;
- }
-
- public static PasswordMetrics computeForPassword(@NonNull String password) {
- return new PasswordMetrics();
- }
-}
\ No newline at end of file
diff --git a/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java b/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java
deleted file mode 100644
index 40b76df759cda90bcdb1b75de661898028363113..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.
- */
-
-package android.bluetooth;
-
-/**
- * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
- */
-public class BluetoothCodecConfig {
-}
diff --git a/tests/robotests/src/android/content/om/IOverlayManager.java b/tests/robotests/src/android/content/om/IOverlayManager.java
deleted file mode 100644
index d4f6d10b9f7fa3e44cc137d1bd92c96951cf4375..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/content/om/IOverlayManager.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.
- */
-
-package android.content.om;
-
-import android.os.IBinder;
-
-public class IOverlayManager {
-
- public static class Stub {
- public static IOverlayManager asInterface(IBinder b) {
- return null;
- }
- }
-}
diff --git a/tests/robotests/src/android/content/om/OverlayInfo.java b/tests/robotests/src/android/content/om/OverlayInfo.java
deleted file mode 100644
index cfd3adc050527f6ddf083d16d79e5c1190cc7538..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/content/om/OverlayInfo.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * 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.
- */
-
-package android.content.om;
-
-public class OverlayInfo {
-}
diff --git a/tests/robotests/src/android/net/NetworkBadging.java b/tests/robotests/src/android/net/NetworkBadging.java
deleted file mode 100644
index f2af08b0590f32ac10527d2816003ede6d0ab418..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/net/NetworkBadging.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-package android.net;
-
-import android.annotation.IntDef;
-import android.annotation.Nullable;
-import android.content.res.Resources;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Implementation for {@link android.net.NetworkBadging}.
- *
- *
Can be removed once Robolectric supports Android O.
- */
-public class NetworkBadging {
- @IntDef({BADGING_NONE, BADGING_SD, BADGING_HD, BADGING_4K})
- @Retention(RetentionPolicy.SOURCE)
- public @interface Badging {}
-
- public static final int BADGING_NONE = 0;
- public static final int BADGING_SD = 10;
- public static final int BADGING_HD = 20;
- public static final int BADGING_4K = 30;
-
- private static Drawable drawable;
-
- public static Drawable getWifiIcon(
- int signalLevel, @NetworkBadging.Badging int badging, @Nullable Resources.Theme theme) {
- return new ColorDrawable(Color.GREEN);
- }
-}
diff --git a/tests/robotests/src/android/net/NetworkScorerAppData.java b/tests/robotests/src/android/net/NetworkScorerAppData.java
deleted file mode 100644
index f7da4d1ccd54b4a19d58a2292a13e0c721734a5e..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/net/NetworkScorerAppData.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package android.net;
-
-import android.annotation.Nullable;
-import android.content.ComponentName;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import java.util.Objects;
-
-/**
- * Holds metadata about a discovered network scorer/recommendation application.
- *
- * TODO: delete this class once robolectric supports Android O
- */
-public final class NetworkScorerAppData implements Parcelable {
- /** UID of the scorer app. */
- public final int packageUid;
- private final ComponentName mRecommendationService;
- /** User visible label in Settings for the recommendation service. */
- private final String mRecommendationServiceLabel;
- /**
- * The {@link ComponentName} of the Activity to start before enabling the "connect to open
- * wifi networks automatically" feature.
- */
- private final ComponentName mEnableUseOpenWifiActivity;
- /**
- * The {@link android.app.NotificationChannel} ID used by {@link #mRecommendationService} to
- * post open network notifications.
- */
- private final String mNetworkAvailableNotificationChannelId;
-
- public NetworkScorerAppData(int packageUid, ComponentName recommendationServiceComp,
- String recommendationServiceLabel, ComponentName enableUseOpenWifiActivity,
- String networkAvailableNotificationChannelId) {
- this.packageUid = packageUid;
- this.mRecommendationService = recommendationServiceComp;
- this.mRecommendationServiceLabel = recommendationServiceLabel;
- this.mEnableUseOpenWifiActivity = enableUseOpenWifiActivity;
- this.mNetworkAvailableNotificationChannelId = networkAvailableNotificationChannelId;
- }
-
- protected NetworkScorerAppData(Parcel in) {
- packageUid = in.readInt();
- mRecommendationService = ComponentName.readFromParcel(in);
- mRecommendationServiceLabel = in.readString();
- mEnableUseOpenWifiActivity = ComponentName.readFromParcel(in);
- mNetworkAvailableNotificationChannelId = in.readString();
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeInt(packageUid);
- ComponentName.writeToParcel(mRecommendationService, dest);
- dest.writeString(mRecommendationServiceLabel);
- ComponentName.writeToParcel(mEnableUseOpenWifiActivity, dest);
- dest.writeString(mNetworkAvailableNotificationChannelId);
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- public static final Creator CREATOR =
- new Creator() {
- @Override
- public NetworkScorerAppData createFromParcel(Parcel in) {
- return new NetworkScorerAppData(in);
- }
-
- @Override
- public NetworkScorerAppData[] newArray(int size) {
- return new NetworkScorerAppData[size];
- }
- };
-
- public String getRecommendationServicePackageName() {
- return mRecommendationService.getPackageName();
- }
-
- public ComponentName getRecommendationServiceComponent() {
- return mRecommendationService;
- }
-
- @Nullable
- public ComponentName getEnableUseOpenWifiActivity() {
- return mEnableUseOpenWifiActivity;
- }
-
- @Nullable
- public String getRecommendationServiceLabel() {
- return mRecommendationServiceLabel;
- }
-
- @Nullable
- public String getNetworkAvailableNotificationChannelId() {
- return mNetworkAvailableNotificationChannelId;
- }
-
- @Override
- public String toString() {
- return "NetworkScorerAppData{" +
- "packageUid=" + packageUid +
- ", mRecommendationService=" + mRecommendationService +
- ", mRecommendationServiceLabel=" + mRecommendationServiceLabel +
- ", mEnableUseOpenWifiActivity=" + mEnableUseOpenWifiActivity +
- ", mNetworkAvailableNotificationChannelId=" +
- mNetworkAvailableNotificationChannelId +
- '}';
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- NetworkScorerAppData that = (NetworkScorerAppData) o;
- return packageUid == that.packageUid &&
- Objects.equals(mRecommendationService, that.mRecommendationService) &&
- Objects.equals(mRecommendationServiceLabel, that.mRecommendationServiceLabel) &&
- Objects.equals(mEnableUseOpenWifiActivity, that.mEnableUseOpenWifiActivity) &&
- Objects.equals(mNetworkAvailableNotificationChannelId,
- that.mNetworkAvailableNotificationChannelId);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(packageUid, mRecommendationService, mRecommendationServiceLabel,
- mEnableUseOpenWifiActivity, mNetworkAvailableNotificationChannelId);
- }
-}
diff --git a/tests/robotests/src/android/net/wifi/WifiNetworkScoreCache.java b/tests/robotests/src/android/net/wifi/WifiNetworkScoreCache.java
deleted file mode 100644
index 7995e07007ef0e90995bf1c02b623c48184c6bca..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/net/wifi/WifiNetworkScoreCache.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.
- */
-package android.net.wifi;
-
-/**
- * Empty class def for {@link android.net.wifi.WifiNetworkScoreCache}.
- *
- *
Can be removed once Robolectric supports Android O.
- */
-public class WifiNetworkScoreCache {
-
-}
diff --git a/tests/robotests/src/android/print/PrintServicesLoader.java b/tests/robotests/src/android/print/PrintServicesLoader.java
deleted file mode 100644
index e4975edb81330b150a9520f73e3f170217ceee58..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/print/PrintServicesLoader.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package android.print;
-
-import android.annotation.NonNull;
-import android.content.Context;
-import android.content.Loader;
-import android.printservice.PrintServiceInfo;
-import com.android.internal.util.Preconditions;
-
-import java.util.List;
-
-/**
- * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
- */
-public class PrintServicesLoader extends Loader> {
- public PrintServicesLoader(@NonNull PrintManager printManager, @NonNull Context context,
- int selectionFlags) {
- super(Preconditions.checkNotNull(context));
- }
-}
diff --git a/tests/robotests/src/android/service/oemlock/OemLockManager.java b/tests/robotests/src/android/service/oemlock/OemLockManager.java
deleted file mode 100644
index c168089be4b3fc8aadff46f6798c0771326fa7e6..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/service/oemlock/OemLockManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.
- */
-
-package android.service.oemlock;
-
-/**
- * Make OemLockManager available to Robolectric.
- */
-public class OemLockManager {
- public void setOemUnlockAllowedByCarrier(boolean allowed, byte[] signature) {}
-
- public boolean isOemUnlockAllowedByCarrier() {
- return true;
- }
-
- public void setOemUnlockAllowedByUser(boolean allowed) {}
-
- public boolean isOemUnlockAllowedByUser() {
- return false;
- }
-
- public boolean isOemUnlockAllowed() {
- return false;
- }
-
- public boolean isDeviceOemUnlocked() {
- return false;
- }
-}
diff --git a/tests/robotests/src/android/util/IconDrawableFactory.java b/tests/robotests/src/android/util/IconDrawableFactory.java
deleted file mode 100644
index 9d0d7df2601f3976d35f7ed96bf40d1876ed70f2..0000000000000000000000000000000000000000
--- a/tests/robotests/src/android/util/IconDrawableFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.
- */
-package android.util;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageItemInfo;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-
-/**
- * This class is only needed to get around Robolectric issue.
- */
-public class IconDrawableFactory {
-
- public static IconDrawableFactory newInstance(Context context) {
- return new IconDrawableFactory();
- }
-
- public Drawable getBadgedIcon(ApplicationInfo appInfo) {
- return getBadgedIcon(appInfo, 0);
- }
-
- public Drawable getBadgedIcon(ApplicationInfo appInfo, int userId) {
- return getBadgedIcon(appInfo, appInfo, userId);
- }
-
- public Drawable getBadgedIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo, int userId) {
- return new ColorDrawable(0);
- }
-}
diff --git a/tests/robotests/src/com/android/ims/ImsManager.java b/tests/robotests/src/com/android/ims/ImsManager.java
deleted file mode 100644
index a4d97b5a64b53d86b4173623fbbf921e924a51fc..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/ims/ImsManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.ims;
-
-import android.content.Context;
-
-/**
- * Fake test class to com.android.ims.ImsManager
- */
-public class ImsManager {
-
- public static boolean wfcEnabledByPlatform;
- public static boolean wfcProvisioned;
-
- public static boolean isWfcEnabledByPlatform(Context context) {
- return wfcEnabledByPlatform;
- }
-
- public static boolean isWfcProvisionedOnDevice(Context context) {
- return wfcProvisioned;
- }
-
- public static int getWfcMode(Context context, boolean roaming) {
- return 0;
- }
-
- public static boolean isWfcEnabledByUser(Context context) {
- return false;
- }
-}
diff --git a/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java b/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java
deleted file mode 100644
index 9edda45cfe7fea708cde7a486423a5bab2caf7c1..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.android.internal.app;
-
-/**
- * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
- */
-public class LocalePickerWithRegion {
-
- public interface LocaleSelectedListener {
- void onLocaleSelected(LocaleStore.LocaleInfo locale);
- }
-}
diff --git a/tests/robotests/src/com/android/internal/app/NightDisplayController.java b/tests/robotests/src/com/android/internal/app/NightDisplayController.java
deleted file mode 100644
index bc2a0ca1ff46cfaed74b69d13af2987c74cba1d6..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/internal/app/NightDisplayController.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2016 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.internal.app;
-
-/**
- * Fake controller to make robolectric test compile. Should be removed when Robolectric supports
- * API 25.
- */
-public class NightDisplayController {
-
- public static final int AUTO_MODE_CUSTOM = 1;
- public static final int COLOR_MODE_NATURAL = 0;
-
- public static final int AUTO_MODE_TWILIGHT = 2;
- public static final int COLOR_MODE_BOOSTED = 1;
- public static final int COLOR_MODE_SATURATED = 2;
- private int mColorMode;
-
- public void setColorMode(int colorMode) {
- mColorMode = colorMode;
- }
-
- public int getColorMode() {
- return mColorMode;
- }
-
- public interface Callback {
- }
-}
diff --git a/tests/robotests/src/com/android/internal/hardware/AmbientDisplayConfiguration.java b/tests/robotests/src/com/android/internal/hardware/AmbientDisplayConfiguration.java
deleted file mode 100644
index 3dcf6ab6d04c355eda35f7275f49c0136770a6c5..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/internal/hardware/AmbientDisplayConfiguration.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2016 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.internal.hardware;
-
-import android.content.Context;
-
-/**
- * Fake controller to make robolectric test compile. Should be removed when Robolectric supports
- * API 25.
- */
-public class AmbientDisplayConfiguration {
-
- public AmbientDisplayConfiguration(Context context) {}
-
- public boolean pulseOnPickupAvailable() {
- return false;
- }
-
- public boolean pulseOnPickupEnabled(int user) {
- return true;
- }
-
- public boolean pulseOnPickupCanBeModified(int user) {
- return true;
- }
-
- public boolean pulseOnDoubleTapAvailable() {
- return true;
- }
-
- public boolean pulseOnDoubleTapEnabled(int user) {
- return true;
- }
-
- public boolean pulseOnNotificationEnabled(int user) {
- return true;
- }
-
- public boolean pulseOnNotificationAvailable() {
- return true;
- }
-
- public boolean alwaysOnEnabled(int user) {
- return true;
- }
-
- public boolean alwaysOnAvailable() {
- return true;
- }
-
- public boolean alwaysOnAvailableForUser(int user) {
- return true;
- }
-
- public boolean available() {
- return true;
- }
-
- public boolean enabled(int user) {
- return true;
- }
-}
diff --git a/tests/robotests/src/com/android/settings/DeviceAdminAddTest.java b/tests/robotests/src/com/android/settings/DeviceAdminAddTest.java
deleted file mode 100644
index cd891bee95e6901c4fbf46ff98cfefbc40c746ac..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/settings/DeviceAdminAddTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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
- */
-
-package com.android.settings;
-
-import android.content.Context;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.annotation.Config;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.verify;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class DeviceAdminAddTest {
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Context mContext;
- private FakeFeatureFactory mFeatureFactory;
- private DeviceAdminAdd mDeviceAdminAdd;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- FakeFeatureFactory.setupForTest(mContext);
- mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
- mDeviceAdminAdd = Robolectric.buildActivity(DeviceAdminAdd.class).get();
- }
-
- @Test
- public void logSpecialPermissionChange() {
- mDeviceAdminAdd.logSpecialPermissionChange(true, "app");
- verify(mFeatureFactory.metricsFeatureProvider).action(any(Context.class),
- eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_ADMIN_ALLOW), eq("app"));
-
- mDeviceAdminAdd.logSpecialPermissionChange(false, "app");
- verify(mFeatureFactory.metricsFeatureProvider).action(any(Context.class),
- eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_ADMIN_DENY), eq("app"));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
deleted file mode 100644
index c5a18339a762f1dab4296cf65b0e5f5e919e961b..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2012 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.settings;
-
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.Build;
-import android.os.UserManager;
-import android.support.v7.preference.PreferenceScreen;
-
-import com.android.settings.dashboard.SummaryLoader;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.XmlTestUtils;
-import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settingslib.DeviceInfoUtils;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(
- manifest = TestConfig.MANIFEST_PATH,
- sdk = TestConfig.SDK_VERSION,
- shadows = ShadowUtils.class
-)
-public class DeviceInfoSettingsTest {
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Context mContext;
- @Mock
- private PreferenceScreen mScreen;
- @Mock
- private UserManager mUserManager;
- @Mock
- private SummaryLoader mSummaryLoader;
-
- private DeviceInfoSettings mSettings;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
- mSettings = spy(new DeviceInfoSettings());
- doReturn(mScreen).when(mSettings).getPreferenceScreen();
- }
-
- @Test
- public void getPrefXml_shouldReturnDeviceInfoXml() {
- assertThat(mSettings.getPreferenceScreenResId()).isEqualTo(R.xml.device_info_settings);
- }
-
- @Test
- public void getSummary_shouldReturnDeviceModel() {
- final SummaryLoader.SummaryProvider mProvider = DeviceInfoSettings.SUMMARY_PROVIDER_FACTORY
- .createSummaryProvider(null, mSummaryLoader);
-
- mProvider.setListening(true);
-
- verify(mSummaryLoader).setSummary(mProvider, Build.MODEL + DeviceInfoUtils.getMsvSuffix());
- }
-
- @Test
- public void testNonIndexableKeys_existInXmlLayout() {
- final Context context = RuntimeEnvironment.application;
- final List niks = DeviceInfoSettings.SEARCH_INDEX_DATA_PROVIDER
- .getNonIndexableKeys(context);
- final int xmlId = (new DeviceInfoSettings()).getPreferenceScreenResId();
-
- final List keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
-
- assertThat(keys).containsAllIn(niks);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
deleted file mode 100644
index 4b345c0c308a6943bb65a7ca581b8e62643b3fca..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.android.settings;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.XmlTestUtils;
-import com.android.settings.testutils.shadow.ShadowPowerManagerWrapper;
-import com.android.settingslib.core.AbstractPreferenceController;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class DisplaySettingsTest {
-
- @Test
- @Config(shadows = ShadowPowerManagerWrapper.class)
- public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
- final Context context = RuntimeEnvironment.application;
-// PowerManager wrapper = mock(PowerManager.class);
-// doReturn(wrapper).when(context).getSystemService(Context.POWER_SERVICE);
- final DisplaySettings fragment = new DisplaySettings();
- final List preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
- fragment.getPreferenceScreenResId());
- final List preferenceKeys = new ArrayList<>();
-
- for (AbstractPreferenceController controller : fragment.getPreferenceControllers(context)) {
- preferenceKeys.add(controller.getPreferenceKey());
- }
- // Nightmode is currently hidden
- preferenceKeys.remove("night_mode");
-
- assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/EncryptionAndCredentialTest.java b/tests/robotests/src/com/android/settings/EncryptionAndCredentialTest.java
deleted file mode 100644
index 7a3875e81286b186cc67601600a9999136579b3b..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/settings/EncryptionAndCredentialTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * 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
- */
-
-package com.android.settings;
-
-import static android.app.admin.DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE;
-import static android.app.admin.DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE;
-import static com.android.settings.EncryptionAndCredential.SEARCH_INDEX_DATA_PROVIDER;
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.when;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.os.UserManager;
-import android.provider.SearchIndexableResource;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class EncryptionAndCredentialTest {
-
- @Mock
- private UserManager mUserManager;
- @Mock
- private DevicePolicyManager mDevicePolicyManager;
-
- private ShadowApplication mApplication;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mApplication = ShadowApplication.getInstance();
- mApplication.setSystemService(Context.DEVICE_POLICY_SERVICE, mDevicePolicyManager);
- mApplication.setSystemService(Context.USER_SERVICE, mUserManager);
- mContext = mApplication.getApplicationContext();
- }
-
- @Test
- public void getMetricsCategory_shouldReturnEncryptionAndCredential() {
- EncryptionAndCredential fragment = new EncryptionAndCredential();
- assertThat(fragment.getMetricsCategory()).isEqualTo(MetricsEvent.ENCRYPTION_AND_CREDENTIAL);
- }
-
- // Search provider tests
- @Test
- public void getXmlResourcesToIndex_shouldReturnAllXmls() {
- final List index =
- SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
- mContext, true /* enabled */);
-
- assertThat(index).hasSize(3);
- }
-
- @Test
- public void getNonIndexableKeys_pageIsDisabled_shouldReturnAllKeysAsNonIndexable() {
- when(mUserManager.isAdminUser()).thenReturn(false);
-
- final List index =
- SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext, true /* enabled */);
- final List expectedKeys = new ArrayList<>();
- for (SearchIndexableResource res : index) {
- expectedKeys.addAll(((BaseSearchIndexProvider) SEARCH_INDEX_DATA_PROVIDER)
- .getNonIndexableKeysFromXml(mContext, res.xmlResId));
- }
- final List keys = SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
- assertThat(keys).containsExactlyElementsIn(expectedKeys);
- }
-
- @Test
- public void getNonIndexableKeys_deviceEncrypted_shouldReturnUnencryptedKeys() {
- when(mUserManager.isAdminUser()).thenReturn(true);
- when(mDevicePolicyManager.getStorageEncryptionStatus()).thenReturn(
- ENCRYPTION_STATUS_ACTIVE);
-
- final List expectedKeys = new ArrayList<>();
- expectedKeys.addAll(((BaseSearchIndexProvider) SEARCH_INDEX_DATA_PROVIDER)
- .getNonIndexableKeysFromXml(mContext, R.xml.security_settings_unencrypted));
- final List keys = SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
- assertThat(keys).containsExactlyElementsIn(expectedKeys);
- }
-
- @Test
- public void getNonIndexableKeys_deviceNotEncrypted_shouldReturnEncryptedKeys() {
- when(mUserManager.isAdminUser()).thenReturn(true);
- when(mDevicePolicyManager.getStorageEncryptionStatus())
- .thenReturn(ENCRYPTION_STATUS_INACTIVE);
-
- final List expectedKeys = new ArrayList<>();
- expectedKeys.addAll(((BaseSearchIndexProvider) SEARCH_INDEX_DATA_PROVIDER)
- .getNonIndexableKeysFromXml(mContext, R.xml.security_settings_encrypted));
- final List keys = SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
- assertThat(keys).containsExactlyElementsIn(expectedKeys);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/HelpTrampolineTest.java b/tests/robotests/src/com/android/settings/HelpTrampolineTest.java
deleted file mode 100644
index e10b878d31a7db338628fb47d648bf86e14543b5..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/settings/HelpTrampolineTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings;
-
-
-import android.content.Intent;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.shadow.ShadowHelpUtils;
-
-import org.junit.After;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowActivity;
-
-import static com.google.common.truth.Truth.assertThat;
-import static org.robolectric.Shadows.shadowOf;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
- shadows = {
- ShadowHelpUtils.class
- })
-public class HelpTrampolineTest {
-
- @After
- public void tearDown() {
- ShadowHelpUtils.reset();
- }
-
- @Test
- public void launchHelp_noExtra_shouldDoNothing() {
- final Intent intent = new Intent().setClassName(
- RuntimeEnvironment.application.getPackageName(), HelpTrampoline.class.getName());
-
- Robolectric.buildActivity(HelpTrampoline.class).withIntent(intent).create().get();
-
- assertThat(ShadowHelpUtils.isGetHelpIntentCalled()).isFalse();
- }
-
- @Test
- public void launchHelp_hasExtra_shouldLaunchHelp() {
- final Intent intent = new Intent().setClassName(
- RuntimeEnvironment.application.getPackageName(), HelpTrampoline.class.getName())
- .putExtra(Intent.EXTRA_TEXT, "help_url_upgrading");
- final ShadowActivity shadow = shadowOf(Robolectric.buildActivity(HelpTrampoline.class)
- .withIntent(intent).create().get());
- final Intent launchedIntent = shadow.getNextStartedActivity();
-
- assertThat(ShadowHelpUtils.isGetHelpIntentCalled()).isTrue();
- assertThat(launchedIntent).isNotNull();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/LegalSettingsTest.java b/tests/robotests/src/com/android/settings/LegalSettingsTest.java
deleted file mode 100644
index 3d50c6366aa5eaffc3df29840f200fbe7b515111..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/settings/LegalSettingsTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.
- */
-package com.android.settings;
-
-import android.content.Context;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.XmlTestUtils;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-import java.util.List;
-
-import static com.google.common.truth.Truth.assertThat;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class LegalSettingsTest {
-
- @Test
- public void testNonIndexableKeys_existInXmlLayout() {
- final Context context = RuntimeEnvironment.application;
- final List niks = LegalSettings.SEARCH_INDEX_DATA_PROVIDER
- .getNonIndexableKeys(context);
-
- final List keys = XmlTestUtils.getKeysFromPreferenceXml(context,
- R.xml.about_legal);
-
- assertThat(keys).containsAllIn(niks);
- }
-}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/LicenseHtmlGeneratorFromXmlTest.java b/tests/robotests/src/com/android/settings/LicenseHtmlGeneratorFromXmlTest.java
deleted file mode 100644
index ea4b2726aed2c714d692ba172e2db6ba66bebe41..0000000000000000000000000000000000000000
--- a/tests/robotests/src/com/android/settings/LicenseHtmlGeneratorFromXmlTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.annotation.Config;
-import org.xmlpull.v1.XmlPullParserException;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class LicenseHtmlGeneratorFromXmlTest {
- private static final String VAILD_XML_STRING =
- "\n" +
- "\n" +
- "/file0\n" +
- "/file1\n" +
- "\n" +
- "";
-
- private static final String INVAILD_XML_STRING =
- "\n" +
- "\n" +
- "/file0\n" +
- "/file1\n" +
- "\n" +
- "";
-
- private static final String EXPECTED_HTML_STRING =
- "\n" +
- "\n" +
- "" +
- "\n" +
- "