forked from jens/Automation
started to adapt tethering trigger to check a specific type
This commit is contained in:
parent
bdc89a855b
commit
f99418fda3
@ -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();
|
||||||
}
|
}
|
||||||
|
44
app/src/main/res/layout/activity_main_tabs.xml
Normal file
44
app/src/main/res/layout/activity_main_tabs.xml
Normal 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>
|
@ -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
|
||||||
|
23
app/src/main/res/layout/fragment_main_activity_tabs.xml
Normal file
23
app/src/main/res/layout/fragment_main_activity_tabs.xml
Normal 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>
|
3
app/src/main/res/values-land/dimens.xml
Normal file
3
app/src/main/res/values-land/dimens.xml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<resources>
|
||||||
|
<dimen name="fab_margin">48dp</dimen>
|
||||||
|
</resources>
|
@ -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>
|
||||||
|
3
app/src/main/res/values-w1240dp/dimens.xml
Normal file
3
app/src/main/res/values-w1240dp/dimens.xml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<resources>
|
||||||
|
<dimen name="fab_margin">200dp</dimen>
|
||||||
|
</resources>
|
3
app/src/main/res/values-w600dp/dimens.xml
Normal file
3
app/src/main/res/values-w600dp/dimens.xml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<resources>
|
||||||
|
<dimen name="fab_margin">48dp</dimen>
|
||||||
|
</resources>
|
@ -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>
|
||||||
|
@ -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>
|
@ -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>
|
Loading…
Reference in New Issue
Block a user