forked from jens/Automation
started to adapt tethering trigger to check a specific type
This commit is contained in:
parent
bdc89a855b
commit
83a27dcfdb
@ -57,10 +57,16 @@ android {
|
|||||||
checkReleaseBuilds false
|
checkReleaseBuilds false
|
||||||
}
|
}
|
||||||
namespace 'com.jens.automation2'
|
namespace 'com.jens.automation2'
|
||||||
|
buildFeatures {
|
||||||
|
viewBinding true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'org.jetbrains:annotations:15.0'
|
implementation 'org.jetbrains:annotations:15.0'
|
||||||
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||||
|
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
|
||||||
|
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
|
||||||
googlePlayFlavorImplementation 'com.google.firebase:firebase-appindexing:20.0.0'
|
googlePlayFlavorImplementation 'com.google.firebase:firebase-appindexing:20.0.0'
|
||||||
googlePlayFlavorImplementation 'com.google.android.gms:play-services-location:18.0.0'
|
googlePlayFlavorImplementation 'com.google.android.gms:play-services-location:18.0.0'
|
||||||
|
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<application>
|
||||||
|
<activity
|
||||||
|
android:name=".MainActivityTabs"
|
||||||
|
android:exported="false"
|
||||||
|
android:label="@string/title_activity_main_tabs"
|
||||||
|
android:theme="@style/AppTheme.NoActionBar" />
|
||||||
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@ -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();
|
||||||
}
|
}
|
||||||
|
49
app/src/main/java/com/jens/automation2/MainActivityTabs.java
Normal file
49
app/src/main/java/com/jens/automation2/MainActivityTabs.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package com.jens.automation2;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
import com.google.android.material.tabs.TabLayout;
|
||||||
|
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.jens.automation2.ui.main.SectionsPagerAdapter;
|
||||||
|
import com.jens.automation2.databinding.ActivityMainTabsBinding;
|
||||||
|
|
||||||
|
public class MainActivityTabs extends AppCompatActivity
|
||||||
|
{
|
||||||
|
|
||||||
|
private ActivityMainTabsBinding binding;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
binding = ActivityMainTabsBinding.inflate(getLayoutInflater());
|
||||||
|
setContentView(binding.getRoot());
|
||||||
|
|
||||||
|
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager());
|
||||||
|
ViewPager viewPager = binding.viewPager;
|
||||||
|
viewPager.setAdapter(sectionsPagerAdapter);
|
||||||
|
TabLayout tabs = binding.tabs;
|
||||||
|
tabs.setupWithViewPager(viewPager);
|
||||||
|
FloatingActionButton fab = binding.fab;
|
||||||
|
|
||||||
|
fab.setOnClickListener(new View.OnClickListener()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void onClick(View view)
|
||||||
|
{
|
||||||
|
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
|
||||||
|
.setAction("Action", null).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.jens.automation2.ui.main;
|
||||||
|
|
||||||
|
import androidx.arch.core.util.Function;
|
||||||
|
import androidx.lifecycle.LiveData;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
import androidx.lifecycle.Transformations;
|
||||||
|
import androidx.lifecycle.ViewModel;
|
||||||
|
|
||||||
|
public class PageViewModel extends ViewModel
|
||||||
|
{
|
||||||
|
|
||||||
|
private MutableLiveData<Integer> mIndex = new MutableLiveData<>();
|
||||||
|
private LiveData<String> mText = Transformations.map(mIndex, new Function<Integer, String>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public String apply(Integer input)
|
||||||
|
{
|
||||||
|
return "Hello world from section: " + input;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
public void setIndex(int index)
|
||||||
|
{
|
||||||
|
mIndex.setValue(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveData<String> getText()
|
||||||
|
{
|
||||||
|
return mText;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,78 @@
|
|||||||
|
package com.jens.automation2.ui.main;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.lifecycle.Observer;
|
||||||
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
|
||||||
|
import com.jens.automation2.R;
|
||||||
|
import com.jens.automation2.databinding.FragmentMainActivityTabsBinding;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A placeholder fragment containing a simple view.
|
||||||
|
*/
|
||||||
|
public class PlaceholderFragment extends Fragment
|
||||||
|
{
|
||||||
|
|
||||||
|
private static final String ARG_SECTION_NUMBER = "section_number";
|
||||||
|
|
||||||
|
private PageViewModel pageViewModel;
|
||||||
|
private FragmentMainActivityTabsBinding binding;
|
||||||
|
|
||||||
|
public static PlaceholderFragment newInstance(int index)
|
||||||
|
{
|
||||||
|
PlaceholderFragment fragment = new PlaceholderFragment();
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.putInt(ARG_SECTION_NUMBER, index);
|
||||||
|
fragment.setArguments(bundle);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
pageViewModel = new ViewModelProvider(this).get(PageViewModel.class);
|
||||||
|
int index = 1;
|
||||||
|
if (getArguments() != null)
|
||||||
|
{
|
||||||
|
index = getArguments().getInt(ARG_SECTION_NUMBER);
|
||||||
|
}
|
||||||
|
pageViewModel.setIndex(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(
|
||||||
|
@NonNull LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
|
||||||
|
binding = FragmentMainActivityTabsBinding.inflate(inflater, container, false);
|
||||||
|
View root = binding.getRoot();
|
||||||
|
|
||||||
|
final TextView textView = binding.sectionLabel;
|
||||||
|
pageViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void onChanged(@Nullable String s)
|
||||||
|
{
|
||||||
|
textView.setText(s);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroyView()
|
||||||
|
{
|
||||||
|
super.onDestroyView();
|
||||||
|
binding = null;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package com.jens.automation2.ui.main;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentPagerAdapter;
|
||||||
|
|
||||||
|
import com.jens.automation2.R;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A [FragmentPagerAdapter] that returns a fragment corresponding to
|
||||||
|
* one of the sections/tabs/pages.
|
||||||
|
*/
|
||||||
|
public class SectionsPagerAdapter extends FragmentPagerAdapter
|
||||||
|
{
|
||||||
|
|
||||||
|
@StringRes
|
||||||
|
private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2};
|
||||||
|
private final Context mContext;
|
||||||
|
|
||||||
|
public SectionsPagerAdapter(Context context, FragmentManager fm)
|
||||||
|
{
|
||||||
|
super(fm);
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Fragment getItem(int position)
|
||||||
|
{
|
||||||
|
// getItem is called to instantiate the fragment for the given page.
|
||||||
|
// Return a PlaceholderFragment (defined as a static inner class below).
|
||||||
|
return PlaceholderFragment.newInstance(position + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public CharSequence getPageTitle(int position)
|
||||||
|
{
|
||||||
|
return mContext.getResources().getString(TAB_TITLES[position]);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCount()
|
||||||
|
{
|
||||||
|
// Show 2 total pages.
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
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>
|
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