started to adapt tethering trigger to check a specific type

This commit is contained in:
Jens 2022-08-17 22:32:14 +02:00
parent bdc89a855b
commit f99418fda3
11 changed files with 201 additions and 6 deletions

View File

@ -9,11 +9,19 @@ import android.widget.RadioButton;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
public class ActivityManageTriggerTethering extends Activity public class ActivityManageTriggerTethering extends Activity
{ {
RadioButton rbTetheringOn, rbTetheringOff; RadioButton rbTetheringOn, rbTetheringOff, rbTetheringTypeAny, rbTetheringTypeWifi, rbTetheringTypeBluetooth, rbTetheringTypeUsb, rbTetheringTypeCable;
Button bTriggerTetheringSave; Button bTriggerTetheringSave;
public final static String tetheringTypeAny = "tetheringTypeAny";
public final static String tetheringTypeWifi = "tetheringTypeWifi";
public final static String tetheringTypeBluetooth = "tetheringTypeBluetooth";
public final static String tetheringTypeUsb = "tetheringTypeUsb";
public final static String tetheringTypeCable = "tetheringTypeCable";
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) protected void onCreate(@Nullable Bundle savedInstanceState)
{ {
@ -22,6 +30,11 @@ public class ActivityManageTriggerTethering extends Activity
rbTetheringOn = (RadioButton) findViewById(R.id.rbTetheringOn); rbTetheringOn = (RadioButton) findViewById(R.id.rbTetheringOn);
rbTetheringOff = (RadioButton)findViewById(R.id.rbTetheringOff); rbTetheringOff = (RadioButton)findViewById(R.id.rbTetheringOff);
rbTetheringTypeAny = (RadioButton) findViewById(R.id.rbTetheringTypeAny);
rbTetheringTypeWifi = (RadioButton) findViewById(R.id.rbTetheringTypeWifi);
rbTetheringTypeBluetooth = (RadioButton) findViewById(R.id.rbTetheringTypeBluetooth);
rbTetheringTypeUsb = (RadioButton) findViewById(R.id.rbTetheringTypeUsb);
rbTetheringTypeCable = (RadioButton) findViewById(R.id.rbTetheringTypeCable);
bTriggerTetheringSave = (Button) findViewById(R.id.bTriggerTetheringSave); bTriggerTetheringSave = (Button) findViewById(R.id.bTriggerTetheringSave);
Intent input = getIntent(); Intent input = getIntent();
@ -31,6 +44,31 @@ public class ActivityManageTriggerTethering extends Activity
rbTetheringOff.setChecked(!input.getBooleanExtra(ActivityManageRule.intentNameTriggerParameter1, false)); rbTetheringOff.setChecked(!input.getBooleanExtra(ActivityManageRule.intentNameTriggerParameter1, false));
} }
if(input.hasExtra(ActivityManageRule.intentNameTriggerParameter2))
{
String type = input.getStringExtra(ActivityManageRule.intentNameTriggerParameter2);
if(!StringUtils.isEmpty(type))
{
switch(type)
{
case tetheringTypeAny:
rbTetheringTypeAny.setChecked(true);
case tetheringTypeWifi:
rbTetheringTypeWifi.setChecked(true);
case tetheringTypeBluetooth:
rbTetheringTypeBluetooth.setChecked(true);
case tetheringTypeUsb:
rbTetheringTypeUsb.setChecked(true);
case tetheringTypeCable:
rbTetheringTypeCable.setChecked(true);
default:
}
}
}
else
rbTetheringTypeAny.setChecked(true);
bTriggerTetheringSave.setOnClickListener(new View.OnClickListener() bTriggerTetheringSave.setOnClickListener(new View.OnClickListener()
{ {
@Override @Override
@ -38,6 +76,18 @@ public class ActivityManageTriggerTethering extends Activity
{ {
Intent response = new Intent(); Intent response = new Intent();
response.putExtra(ActivityManageRule.intentNameTriggerParameter1, rbTetheringOn.isChecked()); response.putExtra(ActivityManageRule.intentNameTriggerParameter1, rbTetheringOn.isChecked());
if(rbTetheringTypeAny.isChecked())
response.putExtra(ActivityManageRule.intentNameTriggerParameter2, tetheringTypeAny);
else if(rbTetheringTypeWifi.isChecked())
response.putExtra(ActivityManageRule.intentNameTriggerParameter2, tetheringTypeWifi);
else if(rbTetheringTypeBluetooth.isChecked())
response.putExtra(ActivityManageRule.intentNameTriggerParameter2, tetheringTypeBluetooth);
else if(rbTetheringTypeUsb.isChecked())
response.putExtra(ActivityManageRule.intentNameTriggerParameter2, tetheringTypeUsb);
else if(rbTetheringTypeCable.isChecked())
response.putExtra(ActivityManageRule.intentNameTriggerParameter2, tetheringTypeCable);
setResult(RESULT_OK, response); setResult(RESULT_OK, response);
finish(); finish();
} }

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivityTabs">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="?actionBarSize"
android:padding="@dimen/appbar_padding"
android:text="@string/app_name"
android:textAppearance="@style/TextAppearance.Widget.AppCompat.Toolbar.Title" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_marginBottom="16dp"
app:srcCompat="@android:drawable/ic_dialog_email" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -58,6 +58,58 @@
</TableRow> </TableRow>
<ImageView
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="10dp"
android:background="#aa000000" />
<TableRow>
<TextView
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/default_margin"
android:text="@string/type" />
<RadioGroup>
<RadioButton
android:id="@+id/rbTetheringTypeAny"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/any" />
<RadioButton
android:id="@+id/rbTetheringTypeWifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/wifi" />
<RadioButton
android:id="@+id/rbTetheringTypeBluetooth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bluetooth" />
<RadioButton
android:id="@+id/rbTetheringTypeUsb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/usb" />
<RadioButton
android:id="@+id/rbTetheringTypeCable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cable" />
</RadioGroup>
</TableRow>
</TableLayout> </TableLayout>
<Button <Button

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.main.PlaceholderFragment">
<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginBottom="@dimen/activity_vertical_margin"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="@+id/constraintLayout"
tools:layout_constraintLeft_creator="1"
tools:layout_constraintTop_creator="1" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">48dp</dimen>
</resources>

View File

@ -832,15 +832,14 @@
<string name="tetheringActive">раздача интернета активна</string> <string name="tetheringActive">раздача интернета активна</string>
<string name="tetheringNotActive">раздача интернета не активна</string> <string name="tetheringNotActive">раздача интернета не активна</string>
<string name="tetheringState">Раздача интернета</string> <string name="tetheringState">Раздача интернета</string>
<string name="enter_a_number">Введите число.</string> <string name="enter_a_number">Введите число.</string>
<string name="regularExpressionsIfEquals">Если выбрано значение \"равно\", можно ввести регулярное выражение.</string> <string name="regularExpressionsIfEquals">Если выбрано значение \"равно\", можно ввести регулярное выражение.</string>
<string name="duration">продолжительность [мс]</string> <string name="duration">продолжительность [мс]</string>
<string name="keepDeviceAwake">Держите устройство в режиме сна</string> <string name="keepDeviceAwake">Держите устройство в режиме сна</string>
<string name="wakeLockTimeout">указать время ожидания</string> <string name="wakeLockTimeout">указать время ожидания</string>
<string name="wakeLockExplanation">Activate будет держать экран включенным, в то время как деактивация позволит ему выключиться. Для поддержания его включенным вы можете либо ввести продолжительность, после которой он может снова отключиться, либо вы можете держать его включенным на неопределенный срок. В последнем случае вам нужно будет создать еще одно действие keep-awake (в том или ином правиле), в котором вы выберете деактивировать.</string> <string name="wakeLockExplanation">Activate будет держать экран включенным, в то время как деактивация позволит ему выключиться. Для поддержания его включенным вы можете либо ввести продолжительность, после которой он может снова отключиться, либо вы можете держать его включенным на неопределенный срок. В последнем случае вам нужно будет создать еще одно действие keep-awake (в том или ином правиле), в котором вы выберете деактивировать.</string>
<string name="mayUseRegularExpressions">Здесь также можно ввести регулярное выражение.</string> <string name="mayUseRegularExpressions">Здесь также можно ввести регулярное выражение.</string>
<string name="locationRequiredToDetermineWifiName">Чтобы получить SSID Wi-Fi, приложению требуются разрешения на местоположение. Поскольку версия Google не может получить его, вы можете использовать этот триггер только в том случае, если вы не указали SSID. Таким образом, его можно использовать только для определения того, подключен ли Wi-Fi или нет.</string> <string name="locationRequiredToDetermineWifiName">Чтобы получить SSID Wi-Fi, приложению требуются разрешения на местоположение. Поскольку версия Google не может получить его, вы можете использовать этот триггер только в том случае, если вы не указали SSID. Таким образом, его можно использовать только для определения того, подключен ли Wi-Fi или нет.</string>
<string name="locationRequiredToDetermineWifiName">Чтобы получить SSID Wi-Fi, приложению требуются разрешения на местоположение. Поскольку версия Google не может получить его, вы можете использовать этот триггер только в том случае, если вы не указали SSID. Таким образом, его можно использовать только для определения того, подключен ли Wi-Fi или нет.</string>
<string name="withButton">с кнопкой %1$s</string> <string name="withButton">с кнопкой %1$s</string>
<string name="bluetooth">Bluetooth</string> <string name="bluetooth">Bluetooth</string>
<string name="subSystemState">Состояние подсистемы</string> <string name="subSystemState">Состояние подсистемы</string>

View File

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">200dp</dimen>
</resources>

View File

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">48dp</dimen>
</resources>

View File

@ -3,4 +3,7 @@
<dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="default_margin">20dp</dimen> <dimen name="default_margin">20dp</dimen>
<dimen name="appbar_padding">16dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="appbar_padding_top">8dp</dimen>
</resources> </resources>

View File

@ -815,7 +815,7 @@
<string name="lockedWithoutSecurity">locked (swipe only, no PIN)</string> <string name="lockedWithoutSecurity">locked (swipe only, no PIN)</string>
<string name="lockedWithSecurity">locked (with PIN, etc.)</string> <string name="lockedWithSecurity">locked (with PIN, etc.)</string>
<string name="lockedCommentScreenMustBeOff">Any state of locked will only be detected if the screen is off.</string> <string name="lockedCommentScreenMustBeOff">Any state of locked will only be detected if the screen is off.</string>
<string name="emailPretext">If you have a problem, suggestions or question, please write something in the email. Do not just send me the files with the default mail body. I will ignore everything those unless we\'re already in a conversation.</string> <string name="emailPretext">If you have a problem, suggestions or question, please write something in the email. Do not just send me the files with the default mail body. I will ignore those unless we\'re already in a conversation.</string>
<string name="sendBroadcast">Send broadcast</string> <string name="sendBroadcast">Send broadcast</string>
<string name="enterBroadcast">Enter a broadcast action.</string> <string name="enterBroadcast">Enter a broadcast action.</string>
<string name="broadcastExplanation">This action allows to send a broadcast across the Android OS messaging system. This is not user-visible, but apps who listen for that specific broadcast can respond to it being sent.</string> <string name="broadcastExplanation">This action allows to send a broadcast across the Android OS messaging system. This is not user-visible, but apps who listen for that specific broadcast can respond to it being sent.</string>
@ -847,4 +847,10 @@
<string name="subSystemState">Subsystem state</string> <string name="subSystemState">Subsystem state</string>
<string name="bluetooth">Bluetooth</string> <string name="bluetooth">Bluetooth</string>
<string name="locationRequiredToDetermineWifiName">To get the wifi SSID, the app requires location permissions. Because the Google version cannot get that, you can only use this trigger if you do not specify an SSID. So it can only be used to detect if wifi is connected or not.</string> <string name="locationRequiredToDetermineWifiName">To get the wifi SSID, the app requires location permissions. Because the Google version cannot get that, you can only use this trigger if you do not specify an SSID. So it can only be used to detect if wifi is connected or not.</string>
<string name="title_activity_main_tabs">MainActivityTabs</string>
<string name="tab_text_1">Tab 1</string>
<string name="tab_text_2">Tab 2</string>
<string name="usb">USB</string>
<string name="type">Type</string>
<string name="cable">Cable</string>
</resources> </resources>

View File

@ -13,4 +13,13 @@
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item> <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. --> <!-- Customize your theme here. -->
</style> </style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources> </resources>