├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── xml │ │ │ │ ├── paths.xml │ │ │ │ ├── settings_communication.xml │ │ │ │ ├── settings_debugging.xml │ │ │ │ └── settings.xml │ │ │ ├── drawable │ │ │ │ ├── connect_status.xml │ │ │ │ ├── home_status.xml │ │ │ │ ├── icon_background.xml │ │ │ │ ├── drawer_home.xml │ │ │ │ ├── bar_menu.xml │ │ │ │ ├── settings_movement.xml │ │ │ │ ├── drawer_about.xml │ │ │ │ ├── device_connect_info.xml │ │ │ │ ├── device_add_smartphone.xml │ │ │ │ ├── drawer_mouse.xml │ │ │ │ ├── device_add_computer.xml │ │ │ │ ├── device_connect.xml │ │ │ │ ├── drawer_connect.xml │ │ │ │ ├── settings_communication.xml │ │ │ │ ├── settings_interface.xml │ │ │ │ ├── device_add_other.xml │ │ │ │ ├── drawer_debug.xml │ │ │ │ ├── drawer_settings.xml │ │ │ │ └── icon_foreground.xml │ │ │ ├── layout │ │ │ │ ├── fragment_mouse.xml │ │ │ │ ├── subfragment_home_disconnected.xml │ │ │ │ ├── subdialog_mouse_message.xml │ │ │ │ ├── dialog_add.xml │ │ │ │ ├── dialog_mouse.xml │ │ │ │ ├── subdialog_calibrate_finished.xml │ │ │ │ ├── dialog_calibrate.xml │ │ │ │ ├── subdialog_add_already.xml │ │ │ │ ├── subdialog_calibrate_begin.xml │ │ │ │ ├── subdialog_add_success.xml │ │ │ │ ├── subdialog_mouse_usage_finished.xml │ │ │ │ ├── subdialog_add_requestsetting.xml │ │ │ │ ├── subdialog_add_requestpermission.xml │ │ │ │ ├── subfragment_home_unsupported.xml │ │ │ │ ├── subfragment_home_disabled.xml │ │ │ │ ├── subfragment_connect_select.xml │ │ │ │ ├── navigation_drawer_header.xml │ │ │ │ ├── subdialog_add_select.xml │ │ │ │ ├── item_add_select.xml │ │ │ │ ├── subdialog_add_bonded.xml │ │ │ │ ├── subdialog_calibrate_happening.xml │ │ │ │ ├── subfragment_connect_connecting.xml │ │ │ │ ├── subdialog_add_manual.xml │ │ │ │ ├── subfragment_home_connected.xml │ │ │ │ ├── fragment_connect.xml │ │ │ │ ├── subfragment_connect_connected.xml │ │ │ │ ├── dialog_info.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── fragment_home.xml │ │ │ │ ├── item_connect_select.xml │ │ │ │ ├── fragment_about.xml │ │ │ │ └── subfragment_connect_failed.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ └── icon.xml │ │ │ ├── values │ │ │ │ ├── arrays.xml │ │ │ │ ├── attrs.xml │ │ │ │ ├── themes.xml │ │ │ │ └── colors.xml │ │ │ ├── values-night │ │ │ │ └── themes.xml │ │ │ └── menu │ │ │ │ └── navigation_drawer.xml │ │ ├── java │ │ │ └── ch │ │ │ │ └── virt │ │ │ │ └── smartphonemouse │ │ │ │ ├── ui │ │ │ │ ├── connect │ │ │ │ │ ├── dialog │ │ │ │ │ │ ├── AddAlreadySubdialog.java │ │ │ │ │ │ ├── AddRequestPermissionSubdialog.java │ │ │ │ │ │ ├── AddRequestSettingSubdialog.java │ │ │ │ │ │ ├── AddSuccessSubdialog.java │ │ │ │ │ │ ├── AddBondedSubdialog.java │ │ │ │ │ │ ├── AddManualSubdialog.java │ │ │ │ │ │ └── InfoDialog.java │ │ │ │ │ ├── ConnectConnectingSubfragment.java │ │ │ │ │ ├── ConnectConnectedSubfragment.java │ │ │ │ │ └── ConnectFailedSubfragment.java │ │ │ │ ├── home │ │ │ │ │ ├── HomeDisconnectedSubfragment.java │ │ │ │ │ ├── HomeUnsupportedSubfragment.java │ │ │ │ │ ├── HomeDisabledSubfragment.java │ │ │ │ │ └── HomeConnectedSubfragment.java │ │ │ │ ├── settings │ │ │ │ │ ├── dialog │ │ │ │ │ │ ├── CalibrateBeginSubdialog.java │ │ │ │ │ │ ├── CalibrateFinishedSubdialog.java │ │ │ │ │ │ ├── CalibrationHappeningSubdialog.java │ │ │ │ │ │ └── CalibrateDialog.java │ │ │ │ │ ├── SettingsDebuggingSubfragment.java │ │ │ │ │ ├── SettingsCommunicationSubfragment.java │ │ │ │ │ ├── SettingsMovementSubfragment.java │ │ │ │ │ ├── SettingsInterfaceSubfragment.java │ │ │ │ │ └── custom │ │ │ │ │ │ ├── SeekIntegerPreference.java │ │ │ │ │ │ └── SeekFloatPreference.java │ │ │ │ ├── AboutFragment.java │ │ │ │ ├── mouse │ │ │ │ │ ├── MouseMessageSubdialog.java │ │ │ │ │ ├── MouseUsageFinishedSubdialog.java │ │ │ │ │ ├── MouseCalibrateDialog.java │ │ │ │ │ └── MouseUsageDialog.java │ │ │ │ ├── SettingsFragment.java │ │ │ │ ├── ConnectFragment.java │ │ │ │ └── HomeFragment.java │ │ │ │ ├── mouse │ │ │ │ ├── components │ │ │ │ │ ├── Trapezoid2f.java │ │ │ │ │ ├── Trapezoid3f.java │ │ │ │ │ ├── WindowAverage.java │ │ │ │ │ ├── WindowAverage3f.java │ │ │ │ │ └── OrThreshold.java │ │ │ │ ├── math │ │ │ │ │ ├── Vec2f.java │ │ │ │ │ └── Vec3f.java │ │ │ │ ├── Calibration.java │ │ │ │ ├── MouseInputs.java │ │ │ │ └── MovementHandler.java │ │ │ │ ├── transmission │ │ │ │ ├── HostDevice.java │ │ │ │ ├── hid │ │ │ │ │ └── HidDescriptor.java │ │ │ │ └── DeviceStorage.java │ │ │ │ └── customization │ │ │ │ ├── DefaultSettings.java │ │ │ │ └── CalibrationHandler.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── ch │ │ │ └── virt │ │ │ └── smartphonemouse │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── ch │ │ └── virt │ │ └── smartphonemouse │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── brand ├── screenshots │ ├── mouse.jpg │ ├── device-selection.jpg │ └── movement-settings.jpg ├── icon.svg ├── badge.svg ├── background.svg └── banner.svg ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── .github └── workflows │ └── release.yml ├── gradlew.bat └── README.md /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name = "SmartMouse" -------------------------------------------------------------------------------- /brand/screenshots/mouse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VirtCode/SmartMouse/HEAD/brand/screenshots/mouse.jpg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VirtCode/SmartMouse/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /brand/screenshots/device-selection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VirtCode/SmartMouse/HEAD/brand/screenshots/device-selection.jpg -------------------------------------------------------------------------------- /brand/screenshots/movement-settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VirtCode/SmartMouse/HEAD/brand/screenshots/movement-settings.jpg -------------------------------------------------------------------------------- /app/src/main/res/xml/paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | .cxx 10 | local.properties 11 | /app/release 12 | /secret 13 | app/keystore.jks 14 | .env -------------------------------------------------------------------------------- /app/src/main/res/drawable/connect_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat May 22 12:39:29 CEST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_mouse.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/home_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Light 5 | Dark 6 | 7 | 8 | 9 | light 10 | dark 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drawer_home.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bar_menu.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/settings_movement.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drawer_about.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/device_connect_info.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subfragment_home_disconnected.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/test/java/ch/virt/smartphonemouse/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/device_add_smartphone.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drawer_mouse.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/device_add_computer.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_mouse_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/java/ch/virt/smartphonemouse/ui/connect/dialog/AddAlreadySubdialog.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse.ui.connect.dialog; 2 | 3 | import androidx.fragment.app.Fragment; 4 | 5 | import ch.virt.smartphonemouse.R; 6 | 7 | /** 8 | * This class displays the sub page of the add dialog when a device has already been added. 9 | */ 10 | public class AddAlreadySubdialog extends Fragment { 11 | /** 12 | * Initializes the sub dialog. 13 | */ 14 | public AddAlreadySubdialog() { 15 | super(R.layout.subdialog_add_already); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/ch/virt/smartphonemouse/ui/home/HomeDisconnectedSubfragment.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse.ui.home; 2 | 3 | import androidx.fragment.app.Fragment; 4 | 5 | import ch.virt.smartphonemouse.R; 6 | 7 | /** 8 | * This sub fragment of the home page is shown when the app is not connected. 9 | */ 10 | public class HomeDisconnectedSubfragment extends Fragment { 11 | 12 | /** 13 | * Creates this sub fragment. 14 | */ 15 | public HomeDisconnectedSubfragment() { 16 | super(R.layout.subfragment_home_disconnected); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/device_connect.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_mouse.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drawer_connect.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_calibrate_finished.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/ch/virt/smartphonemouse/ui/connect/ConnectConnectingSubfragment.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse.ui.connect; 2 | 3 | import androidx.fragment.app.Fragment; 4 | 5 | import ch.virt.smartphonemouse.R; 6 | 7 | /** 8 | * This is a sub fragment for the connect page. 9 | * This fragment gets displayed when the app is currently connecting to a device. 10 | */ 11 | public class ConnectConnectingSubfragment extends Fragment { 12 | 13 | /** 14 | * Creates this sub fragment. 15 | */ 16 | public ConnectConnectingSubfragment() { 17 | super(R.layout.subfragment_connect_connecting); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_calibrate.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/settings_communication.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/settings_interface.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/xml/settings_communication.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/device_add_other.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_add_already.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drawer_debug.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_calibrate_begin.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_add_success.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/java/ch/virt/smartphonemouse/mouse/components/Trapezoid2f.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse.mouse.components; 2 | 3 | import ch.virt.smartphonemouse.mouse.math.Vec2f; 4 | 5 | /** 6 | * This class is used to calculate a number of following trapezoids. Here with a Vec2 as a value 7 | */ 8 | public class Trapezoid2f { 9 | 10 | private Vec2f last = new Vec2f(); 11 | 12 | /** 13 | * Calculates the current trapezoid 14 | * @param delta delta time to the last value 15 | * @param next current value 16 | * @return trapezoid 17 | */ 18 | public Vec2f trapezoid(float delta, Vec2f next) { 19 | Vec2f result = last.mean(next).multiply(delta); 20 | last = next; 21 | return result; 22 | } 23 | 24 | /** 25 | * Resets the last value 26 | */ 27 | public void reset() { 28 | last = new Vec2f(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/ch/virt/smartphonemouse/mouse/components/Trapezoid3f.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse.mouse.components; 2 | 3 | import ch.virt.smartphonemouse.mouse.math.Vec3f; 4 | 5 | /** 6 | * This class is used to calculate a number of following trapezoids. Here with a Vec3 as a value 7 | */ 8 | public class Trapezoid3f { 9 | 10 | private Vec3f last = new Vec3f(); 11 | 12 | /** 13 | * Calculates the current trapezoid 14 | * @param delta delta time to the last value 15 | * @param next current value 16 | * @return trapezoid 17 | */ 18 | public Vec3f trapezoid(float delta, Vec3f next) { 19 | Vec3f result = last.mean(next).multiply(delta); 20 | last = next; 21 | return result; 22 | } 23 | 24 | /** 25 | * Resets the last value 26 | */ 27 | public void reset() { 28 | last = new Vec3f(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_mouse_usage_finished.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/androidTest/java/ch/virt/smartphonemouse/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | assertEquals("ch.virt.smartphonemouse", appContext.getPackageName()); 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/java/ch/virt/smartphonemouse/ui/settings/dialog/CalibrateBeginSubdialog.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse.ui.settings.dialog; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | import androidx.annotation.NonNull; 6 | import androidx.annotation.Nullable; 7 | import androidx.fragment.app.Fragment; 8 | import ch.virt.smartphonemouse.R; 9 | 10 | /** 11 | * This class is a sub fragment for the calibrate dialog, that is shown when the calibration process has finished. 12 | */ 13 | public class CalibrateBeginSubdialog extends Fragment { 14 | 15 | 16 | /** 17 | * Creates the sub dialog. 18 | */ 19 | public CalibrateBeginSubdialog() { 20 | super(R.layout.subdialog_calibrate_begin); 21 | } 22 | 23 | @Override 24 | public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 25 | super.onViewCreated(view, savedInstanceState); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/ch/virt/smartphonemouse/ui/settings/dialog/CalibrateFinishedSubdialog.java: -------------------------------------------------------------------------------- 1 | package ch.virt.smartphonemouse.ui.settings.dialog; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | import androidx.annotation.NonNull; 6 | import androidx.annotation.Nullable; 7 | import androidx.fragment.app.Fragment; 8 | import ch.virt.smartphonemouse.R; 9 | 10 | /** 11 | * This class is a sub fragment for the calibrate dialog, that is shown when the calibration process has finished. 12 | */ 13 | public class CalibrateFinishedSubdialog extends Fragment { 14 | 15 | 16 | /** 17 | * Creates the sub dialog. 18 | */ 19 | public CalibrateFinishedSubdialog() { 20 | super(R.layout.subdialog_calibrate_finished); 21 | } 22 | 23 | @Override 24 | public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 25 | super.onViewCreated(view, savedInstanceState); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_add_requestsetting.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subdialog_add_requestpermission.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/subfragment_home_unsupported.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 16 | 17 |