diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java index 3580056..2ddbec8 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java @@ -170,7 +170,13 @@ public class ActivityManageRule extends Activity { hideKeyboard(); newTrigger = new Trigger(); - getTriggerTypeDialog(context).show(); + + AlertDialog dia = getTriggerTypeDialog(context); + + if(Miscellaneous.isDarkModeEnabled(ActivityManageRule.this)) + dia.getListView().setBackgroundColor(getResources().getColor(R.color.darkScreenBackgroundColor)); + + dia.show(); } }); @@ -180,7 +186,13 @@ public class ActivityManageRule extends Activity public void onClick(View v) { hideKeyboard(); - getActionTypeDialog().show(); + + AlertDialog dia = getActionTypeDialog(); + + if(Miscellaneous.isDarkModeEnabled(ActivityManageRule.this)) + dia.getListView().setBackgroundColor(getResources().getColor(R.color.darkScreenBackgroundColor)); + + dia.show(); } }); @@ -487,168 +499,169 @@ public class ActivityManageRule extends Activity items.add(new Item(typesLong[i].toString(), R.drawable.placeholder)); } - ListAdapter adapter = new ArrayAdapter(this, android.R.layout.select_dialog_item, android.R.id.text1, items) - { - public View getView(int position, View convertView, ViewGroup parent) - { - //User super class to create the View - View v = super.getView(position, convertView, parent); - - TextView tv = (TextView)v.findViewById(android.R.id.text1); + ListAdapter adapter = new ArrayAdapter(this, android.R.layout.select_dialog_item, android.R.id.text1, items) + { + public View getView(int position, View convertView, ViewGroup parent) + { + //User super class to create the View + View v = super.getView(position, convertView, parent); - //Put the image on the TextView - tv.setCompoundDrawablesWithIntrinsicBounds(items.get(position).icon, 0, 0, 0); + TextView tv = (TextView)v.findViewById(android.R.id.text1); - //Add margin between image and text (support various screen densities) - int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f); - tv.setCompoundDrawablePadding(dp5); + //Put the image on the TextView + tv.setCompoundDrawablesWithIntrinsicBounds(items.get(position).icon, 0, 0, 0); - return v; - } - }; + //Add margin between image and text (support various screen densities) + int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f); + tv.setCompoundDrawablePadding(dp5); - AlertDialog.Builder builder = new AlertDialog.Builder(this) - .setTitle(getResources().getString(R.string.selectTypeOfTrigger)) - .setAdapter(adapter, new DialogInterface.OnClickListener() - { - @RequiresApi(api = Build.VERSION_CODES.KITKAT) - public void onClick(DialogInterface dialog, int which) - { - triggerType = Trigger_Enum.values()[which]; + return v; + } + }; - String[] booleanChoices = null; - if(triggerType == Trigger_Enum.pointOfInterest) - { - if(Miscellaneous.googleToBlameForLocation(false)) - { - ActivityMainScreen.openGoogleBlamingWindow(); - return; - } - else - { - if (PointOfInterest.getPointOfInterestCollection() != null && PointOfInterest.getPointOfInterestCollection().size() > 0) - booleanChoices = new String[]{getResources().getString(R.string.entering), getResources().getString(R.string.leaving)}; - else - { - Toast.makeText(myContext, getResources().getString(R.string.noPoisSpecified), Toast.LENGTH_LONG).show(); - return; - } - } - } - else if(triggerType == Trigger_Enum.timeFrame) - { - newTrigger.setTriggerType(Trigger_Enum.timeFrame); - ActivityManageTriggerTimeFrame.editedTimeFrameTrigger = newTrigger; - Intent timeFrameEditor = new Intent(myContext, ActivityManageTriggerTimeFrame.class); - startActivityForResult(timeFrameEditor, requestCodeTriggerTimeframeAdd); - return; - } - else if(triggerType == Trigger_Enum.charging) - booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; - else if(triggerType == Trigger_Enum.usb_host_connection) - booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)}; - else if(triggerType == Trigger_Enum.speed | triggerType == Trigger_Enum.noiseLevel | triggerType == Trigger_Enum.batteryLevel) - booleanChoices = new String[]{getResources().getString(R.string.exceeds), getResources().getString(R.string.dropsBelow)}; - else if(triggerType == Trigger_Enum.wifiConnection) - { - newTrigger.setTriggerType(Trigger_Enum.wifiConnection); - Intent wifiTriggerEditor = new Intent(myContext, ActivityManageTriggerWifi.class); - startActivityForResult(wifiTriggerEditor, requestCodeTriggerWifiAdd); - return; -// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; - } - else if(triggerType == Trigger_Enum.deviceOrientation) - { - newTrigger.setTriggerType(Trigger_Enum.deviceOrientation); - Intent devicePositionTriggerEditor = new Intent(myContext, ActivityManageTriggerDeviceOrientation.class); - startActivityForResult(devicePositionTriggerEditor, requestCodeTriggerDeviceOrientationAdd); - return; -// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; - } -// else if(triggerType == Trigger_Enum.wifiConnection) -// booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)}; - else if(triggerType == Trigger_Enum.process_started_stopped) - booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; - else if(triggerType == Trigger_Enum.notification) - { - newTrigger.setTriggerType(Trigger_Enum.notification); - Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNotification.class); - startActivityForResult(nfcEditor, requestCodeTriggerNotificationAdd); - return; - } - else if(triggerType == Trigger_Enum.airplaneMode) - booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)}; - else if(triggerType == Trigger_Enum.roaming) - booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)}; - else if(triggerType == Trigger_Enum.phoneCall) - { - newTrigger.setTriggerType(Trigger_Enum.phoneCall); - Intent phoneTriggerEditor = new Intent(myContext, ActivityManageTriggerPhoneCall.class); - startActivityForResult(phoneTriggerEditor, requestCodeTriggerPhoneCallAdd); - return; -// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; - } - else if(triggerType == Trigger_Enum.activityDetection) - { - try - { - Method m = Miscellaneous.getClassMethodReflective(activityDetectionClassPath, "isPlayServiceAvailable"); - if(m != null) - { - boolean available = (Boolean)m.invoke(null); - if(available) - { - newTrigger.setTriggerType(Trigger_Enum.activityDetection); - getTriggerActivityDetectionDialog().show(); - } - else - Toast.makeText(myContext, getResources().getString(R.string.triggerOnlyAvailableIfPlayServicesInstalled), Toast.LENGTH_LONG).show(); - } - else - Miscellaneous.messageBox(getResources().getString(R.string.error), getResources().getString(R.string.featureNotInFdroidVersion), ActivityManageRule.this).show(); - } - catch (IllegalAccessException | InvocationTargetException e) - { - e.printStackTrace(); - } - return; - } - else if(triggerType == Trigger_Enum.nfcTag) - { - if(NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true)) - { - newTrigger.setTriggerType(Trigger_Enum.nfcTag); - Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNfc.class); - startActivityForResult(nfcEditor, requestCodeTriggerNfcTagAdd); - return; - } - } - else if(triggerType == Trigger_Enum.bluetoothConnection) - { - if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) - Miscellaneous.messageBox("Bluetooth", getResources().getString(R.string.deviceDoesNotHaveBluetooth), ActivityManageRule.this).show();; + AlertDialog.Builder builder = new AlertDialog.Builder(this) + .setTitle(getResources().getString(R.string.selectTypeOfTrigger)) + .setAdapter(adapter, new DialogInterface.OnClickListener() + { + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + public void onClick(DialogInterface dialog, int which) + { + triggerType = Trigger_Enum.values()[which]; - newTrigger.setTriggerType(Trigger_Enum.bluetoothConnection); - ActivityManageTriggerBluetooth.editedBluetoothTrigger = newTrigger; - Intent bluetoothEditor = new Intent(myContext, ActivityManageTriggerBluetooth.class); - startActivityForResult(bluetoothEditor, requestCodeTriggerBluetoothAdd); - return; - } - else if(triggerType == Trigger_Enum.headsetPlugged) - booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)}; - - if(triggerType == Trigger_Enum.nfcTag) + String[] booleanChoices = null; + if(triggerType == Trigger_Enum.pointOfInterest) + { + if(Miscellaneous.googleToBlameForLocation(false)) { - if (NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true)) - getTriggerParameterDialog(context, booleanChoices).show(); + ActivityMainScreen.openGoogleBlamingWindow(); + return; } else + { + if (PointOfInterest.getPointOfInterestCollection() != null && PointOfInterest.getPointOfInterestCollection().size() > 0) + booleanChoices = new String[]{getResources().getString(R.string.entering), getResources().getString(R.string.leaving)}; + else + { + Toast.makeText(myContext, getResources().getString(R.string.noPoisSpecified), Toast.LENGTH_LONG).show(); + return; + } + } + } + else if(triggerType == Trigger_Enum.timeFrame) + { + newTrigger.setTriggerType(Trigger_Enum.timeFrame); + ActivityManageTriggerTimeFrame.editedTimeFrameTrigger = newTrigger; + Intent timeFrameEditor = new Intent(myContext, ActivityManageTriggerTimeFrame.class); + startActivityForResult(timeFrameEditor, requestCodeTriggerTimeframeAdd); + return; + } + else if(triggerType == Trigger_Enum.charging) + booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; + else if(triggerType == Trigger_Enum.usb_host_connection) + booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)}; + else if(triggerType == Trigger_Enum.speed | triggerType == Trigger_Enum.noiseLevel | triggerType == Trigger_Enum.batteryLevel) + booleanChoices = new String[]{getResources().getString(R.string.exceeds), getResources().getString(R.string.dropsBelow)}; + else if(triggerType == Trigger_Enum.wifiConnection) + { + newTrigger.setTriggerType(Trigger_Enum.wifiConnection); + Intent wifiTriggerEditor = new Intent(myContext, ActivityManageTriggerWifi.class); + startActivityForResult(wifiTriggerEditor, requestCodeTriggerWifiAdd); + return; +// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; + } + else if(triggerType == Trigger_Enum.deviceOrientation) + { + newTrigger.setTriggerType(Trigger_Enum.deviceOrientation); + Intent devicePositionTriggerEditor = new Intent(myContext, ActivityManageTriggerDeviceOrientation.class); + startActivityForResult(devicePositionTriggerEditor, requestCodeTriggerDeviceOrientationAdd); + return; +// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; + } +// else if(triggerType == Trigger_Enum.wifiConnection) +// booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)}; + else if(triggerType == Trigger_Enum.process_started_stopped) + booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; + else if(triggerType == Trigger_Enum.notification) + { + newTrigger.setTriggerType(Trigger_Enum.notification); + Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNotification.class); + startActivityForResult(nfcEditor, requestCodeTriggerNotificationAdd); + return; + } + else if(triggerType == Trigger_Enum.airplaneMode) + booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)}; + else if(triggerType == Trigger_Enum.roaming) + booleanChoices = new String[]{getResources().getString(R.string.activated), getResources().getString(R.string.deactivated)}; + else if(triggerType == Trigger_Enum.phoneCall) + { + newTrigger.setTriggerType(Trigger_Enum.phoneCall); + Intent phoneTriggerEditor = new Intent(myContext, ActivityManageTriggerPhoneCall.class); + startActivityForResult(phoneTriggerEditor, requestCodeTriggerPhoneCallAdd); + return; +// booleanChoices = new String[]{getResources().getString(R.string.started), getResources().getString(R.string.stopped)}; + } + else if(triggerType == Trigger_Enum.activityDetection) + { + try + { + Method m = Miscellaneous.getClassMethodReflective(activityDetectionClassPath, "isPlayServiceAvailable"); + if(m != null) + { + boolean available = (Boolean)m.invoke(null); + if(available) + { + newTrigger.setTriggerType(Trigger_Enum.activityDetection); + getTriggerActivityDetectionDialog().show(); + } + else + Toast.makeText(myContext, getResources().getString(R.string.triggerOnlyAvailableIfPlayServicesInstalled), Toast.LENGTH_LONG).show(); + } + else + Miscellaneous.messageBox(getResources().getString(R.string.error), getResources().getString(R.string.featureNotInFdroidVersion), ActivityManageRule.this).show(); + } + catch (IllegalAccessException | InvocationTargetException e) + { + e.printStackTrace(); + } + return; + } + else if(triggerType == Trigger_Enum.nfcTag) + { + if(NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true)) + { + newTrigger.setTriggerType(Trigger_Enum.nfcTag); + Intent nfcEditor = new Intent(myContext, ActivityManageTriggerNfc.class); + startActivityForResult(nfcEditor, requestCodeTriggerNfcTagAdd); + return; + } + } + else if(triggerType == Trigger_Enum.bluetoothConnection) + { + if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) + Miscellaneous.messageBox("Bluetooth", getResources().getString(R.string.deviceDoesNotHaveBluetooth), ActivityManageRule.this).show();; + + newTrigger.setTriggerType(Trigger_Enum.bluetoothConnection); + ActivityManageTriggerBluetooth.editedBluetoothTrigger = newTrigger; + Intent bluetoothEditor = new Intent(myContext, ActivityManageTriggerBluetooth.class); + startActivityForResult(bluetoothEditor, requestCodeTriggerBluetoothAdd); + return; + } + else if(triggerType == Trigger_Enum.headsetPlugged) + booleanChoices = new String[]{getResources().getString(R.string.connected), getResources().getString(R.string.disconnected)}; + + if(triggerType == Trigger_Enum.nfcTag) + { + if (NfcReceiver.checkNfcRequirements(ActivityManageRule.this, true)) getTriggerParameterDialog(context, booleanChoices).show(); - } - }); - - return builder.create(); + } + else + getTriggerParameterDialog(context, booleanChoices).show(); + } + }); + + return builder.create(); } + private AlertDialog getTriggerParameterDialog(final Context myContext, final String[] choices) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); @@ -1389,7 +1402,7 @@ public class ActivityManageRule extends Activity } } - protected Dialog getActionTypeDialog() + protected AlertDialog getActionTypeDialog() { final ArrayList items = new ArrayList(); diff --git a/app/src/main/java/com/jens/automation2/ActivityPermissions.java b/app/src/main/java/com/jens/automation2/ActivityPermissions.java index 90a529f..f211082 100644 --- a/app/src/main/java/com/jens/automation2/ActivityPermissions.java +++ b/app/src/main/java/com/jens/automation2/ActivityPermissions.java @@ -238,9 +238,9 @@ public class ActivityPermissions extends Activity if( s.equalsIgnoreCase(Manifest.permission.ACCESS_BACKGROUND_LOCATION) || - s.equalsIgnoreCase(Manifest.permission.ACCESS_FINE_LOCATION) + s.equalsIgnoreCase(Manifest.permission.ACCESS_FINE_LOCATION) || - s.equalsIgnoreCase(Manifest.permission.ACCESS_COARSE_LOCATION) + s.equalsIgnoreCase(Manifest.permission.ACCESS_COARSE_LOCATION) ) { if (!Miscellaneous.googleToBlameForLocation(true)) @@ -702,13 +702,6 @@ public class ActivityPermissions extends Activity usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); break; case Manifest.permission.ACCESS_COARSE_LOCATION: -// usingElements.add(getResources().getString(R.string.android_permission_ACCESS_COARSE_LOCATION)); - usingElements.add(getResources().getString(R.string.manageLocations)); - for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.pointOfInterest)) - usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); - for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.speed)) - usingElements.add(String.format(getResources().getString(R.string.ruleXrequiresThis), ruleName)); - break; case Manifest.permission.ACCESS_FINE_LOCATION: usingElements.add(getResources().getString(R.string.manageLocations)); for(String ruleName : getRulesUsing(Trigger.Trigger_Enum.pointOfInterest)) diff --git a/app/src/main/java/com/jens/automation2/Miscellaneous.java b/app/src/main/java/com/jens/automation2/Miscellaneous.java index 3342cc4..ffe418b 100644 --- a/app/src/main/java/com/jens/automation2/Miscellaneous.java +++ b/app/src/main/java/com/jens/automation2/Miscellaneous.java @@ -547,7 +547,8 @@ public class Miscellaneous extends Service public static boolean isDarkModeEnabled(Context context) { - switch(context.getResources().getConfiguration().uiMode) + int mode = context.getResources().getConfiguration().uiMode; + switch(mode) { case Configuration.UI_MODE_NIGHT_YES: return true; diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 5f9a2eb..1fe4fae 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -410,7 +410,7 @@ Profil wird nicht aktiviert. Zuletzt aktiviertes Profil ist gesperrt worden. Momentane Lautstärke Geben Sie einen gültigen Referenzwert ein. - Lautstärkentest + Lautstärkekalibrierung Um einen dB Wert für die Lautstärkemessung zu berechnen müssen Sie einen sogenannten physikalischen Referenzwert angeben. Bitte lesen Sie bei Wikipedia nach, um mehr zu erfahren. Dieser Wert wird höchstwahrscheinlich für jedes Smartphone oder Tablet anders sein, deshalb diese Testanwendung. Verschieben Sie den Regler, um den gegenwärtig definierten Wert zu ändern. Je höher der Referenzwert desto niedriger wird der dB Wert. Es werden alle paar %1$s Sekunden neue Messungen vorgenommen und das Ergebnis unten angezeigt. Drücken Sie den zurück-Button, wenn Sie einen passenden Wert gefunden haben. Manche Einstellungen können nicht übernommen werden bevor der Dienst neu gestartet wird. Sie müssen Ihr Telefon rooten, damit diese Funktion funktionieren kann. Danach müssen Sie "Regel manuell ausführen", um den SuperUser Berechtigungsdialog zu zeigen. Wenn dieser erscheint, müssen Sie den Haken setzen, der es immer erlaubt. Ansonsten kann die Regel nicht funktionieren, wenn Sie das Telefon gerade nicht benutzen und demnach den nächsten Dialog nicht genehmigen können. @@ -632,4 +632,10 @@ Geräteausrichtungseinstellungen Wenn das Häkchen gesetzt ist, bedeutet das, daß das Geräte in der angegebenen Ausrichtung sein muß. Wenn es nicht gesetzt ist, führt jede andere Ausrichtung zu einem positiven Ergebnis. Wenn Sie Ihr Gerät bewegen, werden die Zahlen unten aktualisiert. Was Sie hier sehen können, ist die momentane Ausrichtung Ihres Geräts, gemessen in Grad. Wenn das Gerät in der gewünschten Ausrichtung ist, klicken Sie den \"übernehmen\" Knopf, um die Werte in die \"gewünscht\" Felder zu übertragen.\nWeil es sehr unwahrscheinlich ist, daß Sie diese exakte Ausrichtung jemals wieder erreichen, müssen Sie Toleranzen eingeben. Dies ist der Winkel in Grad, der in jede Richtung noch akzeptiert wird. 15° entsprechen somit einem Gesamtwinkel von 30°, 15 in jede Richtung.\nWenn Ihnen nur eine bestimmte Achse wichtig ist, können Sie eine Toleranz von 180° für die anderen beiden Richtungen angeben. + Bluetooth Tethering + Bluetooth Tethering einschalten + Bluetooth Tethering ausschalten + Sie müssen eine positive Ganzzahl als Wiederholungszeit eingeben. + Diese Funktion funktioniert bestätigt bis einschließlich Android 8.0. Ab einer höheren Version funktioniert sie nicht mehr, aber ich ich kann mangels physischer Geräte nicht sagen, aber welcher genau. Unter Android 11 funktioniert es definitiv nicht mehr. Wenn Sie eine Version dazwischen haben, lassen Sie mich bitte wissen, ob es funktioniert oder nicht. + Mit diesem Auslöser stimmt etwas nicht. Er konnte nicht korrekt geladen werden. \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index acbb775..888f127 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -472,7 +472,7 @@ Monstrar icono Monstrar icono cuando el servicio esta activo (ocultando solo funciona antes Android 7) Volumen actual - Prueba de volumen + Calibrado de volumen Permisos necesarios Funciones desactivadas Dispositivo no valido. @@ -578,7 +578,7 @@ Su configuración y/o reglas actualmente referencian caracteristicas no-libres no seran proveidas en la versión F-Droid. Esto incluye determinar su actual actividad fisica. Automation ahora usa otra ruta para guardar sus archivos. Todos sus archivos de Automation fueron desplazados aqui: \"%s\". El permiso del almacenamiento externo todavia no es necesario; puede revocarlo. Sera eliminado en una futura versión. Quiere recibir noticias (solo importantes) en la pantalla principal? Estas serán descargadas de la pagina del desarollador. No habrán notificaciones inoportunas, solo un texto en la pantalla principal cuando abra la app. - Config y archivos de log seran guardados en el directorio %1$s. Cliquee en este texto para abrir un administrador de archivos. Desafortunadamente solo funciona en un dispositivo rooted. PARA OTROS DISP.: Simplemente use el boton para crear un backup. + Config y archivos de log seran guardados en el directorio %1$s. Cliquee en este texto para abrir un administrador de archivos. Desafortunadamente solo funciona en un dispositivo rooted.\n\nPARA OTROS DISP.: Simplemente use el boton para crear un backup. Esta condición responde a todas las aplicaciones que abren o cierran notificaciones en el areal notificaciones. Puedes especificar otra aplicación de que la notificación tiene que venir. Si no la notificación puede originarse de cualquier app. Tambien puedes especificar strings que (/no) tienen que estar en en titulo o el texto de la notificación. La comparación es insensible a minúsculas y mayúsculas. Si este ajuste esta activo el sonido será reproducido siempre. Si esta inactivo el sonido solo será reproducido si su dispositivo ni esta en mute ni en vibración. Pero si esta activo cambiará el volumen. Tambien si su dispositivo esta en el modo timbre el volumen multimedia no será cambiado por ejemplo. En resumen si el volumen multimedia esta en mute no escuchará nada. Esto comenzará un nuevo email con su config y los archivos de log adjunto como archivo zip. No será enviado automaticamente. Todavia tiene que cliquear \"enviar\". Tambien puede cambiar el receptor a si mismo por ejemplo. @@ -602,4 +602,7 @@ " Acimut:" apagar pantalla encender pantalla + Enrutador Bluetooth + activar enrutador Bluetooth + desactivar enrutador Bluetooth \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index d0e984b..7329987 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -14,7 +14,7 @@ disattiva la connessione mobile attiva la connessione mobile Rotazione dello schermo - Tethering USB + USB Tethering Wifi Wifi Tethering Pronuncia testo @@ -552,7 +552,7 @@ Allarmi sonori Multimedia (musica, video …) Toni e notifiche - Taratura audio + Calibratura audio Per calcolare il valore del rumore di fondo in dB è necessario specificare un valore di riferimento fisico (si prega di leggere Wikipedia per ulteriori informazioni). Questo valore è probabilmente diverso per ogni telefono. Trascinare il cursore per modificare il valore di riferimento fisico definito. Più alto è il valore di riferimento e più basso sarà il valore misurato in dB. Misurazioni costanti saranno effettuate ogni %1$s secondi ed i risultati visualizzati sotto. Premere indietro quando hai trovato un valore adeguato. Volumi Attesa prima della azione successiva @@ -591,4 +591,9 @@ Orientamento Tolleranza Azimut: + Bluetooth Tethering + accendere Bluetooth Tethering + spegnere Bluetooth Tethering + Vibrare + Provare diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 96614ac..7eab29d 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -12,7 +12,6 @@ #000000 #F3F3F3 #FFFFFF - #FFFFFF - #F3F3F3 - - + #444444 + #eeeeee + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4124cbf..5878cc4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -456,7 +456,7 @@ GPS measurement GPS measurement stopped due to timeout. Cell tower changed: %1$s - If you think the noise detection isn\'t working correctly (depending on the value you specify) please keep in mind that every phone is different. You can therefore change \"Reference for noise measurement\" in settings. See http://en.wikipedia.org/wiki/Decibel for more information. You can use the volume tester from the main screen to calibrate your device. + If you think the noise detection isn\'t working correctly (depending on the value you specify) please keep in mind that every phone is different. You can therefore change \"Reference for noise measurement\" in settings. See http://en.wikipedia.org/wiki/Decibel for more information. You can use the volume calibrator from the main screen to calibrate your device. Hint Select noise level Location has wifi. Stopping CellLocationChangedReceiver. @@ -503,7 +503,7 @@ Profile will not be activated. Last activated profile has been locked. Current volume Enter a valid reference value. - Volume test + Volume calibration To calculate a dB value for noise monitoring you need to specify a so called physical reference value. Please read Wikipedia for further information. This value is most likely different for every phone. Drag the seekbar to change the defined physical reference value. The higher the reference value the lower the dB value will be. Constant measurings will be performed every %1$s seconds and the results displayed below. Press back when you have found a suitable value. Some settings will not be applied before certain environment settings change or service is restarted. Phone is rooted.