From 51e26752826c0029ffac8a9ed404d59f9ee8263c Mon Sep 17 00:00:00 2001 From: polkaulfield Date: Sat, 14 Dec 2024 02:46:27 +0100 Subject: [PATCH 1/4] Changed icon, added proper app name and added automatic launching with record permission --- app/build.gradle | 1 - app/src/main/AndroidManifest.xml | 3 + app/src/main/ic_launcher-playstore.png | Bin 0 -> 12419 bytes .../libusbAndroidTest/MainActivity.java | 35 ++- .../drawable-v24/ic_launcher_foreground.xml | 30 --- .../res/drawable/ic_launcher_background.xml | 236 ++++++------------ .../res/drawable/ic_launcher_foreground.xml | 6 + app/src/main/res/layout/activity_main.xml | 13 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 4 +- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5021 bytes app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 1404 -> 0 bytes .../mipmap-hdpi/ic_launcher_background.png | Bin 0 -> 844 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 2419 bytes .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 0 -> 2322 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 2898 -> 2602 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3009 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 982 -> 0 bytes .../mipmap-mdpi/ic_launcher_background.png | Bin 0 -> 450 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 1301 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 0 -> 1228 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 1772 -> 1944 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 6668 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 1900 -> 0 bytes .../mipmap-xhdpi/ic_launcher_background.png | Bin 0 -> 1308 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 3184 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 3061 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 3918 -> 3702 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 11281 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 2884 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_background.png | Bin 0 -> 2940 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 6141 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 0 -> 5920 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 5914 -> 5952 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 15503 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 3844 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_background.png | Bin 0 -> 4223 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 8194 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 0 -> 7873 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 7778 -> 8230 bytes app/src/main/res/values/strings.xml | 2 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 43 files changed, 128 insertions(+), 211 deletions(-) create mode 100644 app/src/main/ic_launcher-playstore.png delete mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png diff --git a/app/build.gradle b/app/build.gradle index 609d0af..14d651c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,7 +33,6 @@ android { externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') - version '3.10.2' } } buildFeatures { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fe7eda8..802f2f0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,9 @@ + + + g%HRaN!Z^7!MNvi&vdu_W6$KD z%RQWXxZ!s%-{<#vo`)|#i^RAuUbPs4Aom@ge6$CG7J$&ax+-hyCT(eQjB6%U8YIEDMhJ**5u>Q1i(YG`Z^>jBzcD`A zI545Dm?pkozrmJa3dd1P1h(~^*%FVZUWOa3O>O)b>^I#8C8I>@hU$y_lyGZwP@7%Y z6B_u9RxsRd<57liWfFn^sMf7eB8WK|%%Rog5u$3F1`ea7Y)f;mD2aHB5}H+?i@V9v zMoR>0hH_&oUS865qDpx%oTkBVg1&cyjzE43*L*R1sCIYxZ2Env-TI}BMy=b+F6>1)<@rB@upEp4l7Ybu{>0rs6{m<>-u@qtFoHr7o&>52PLk^=;Iep zx!#Fh0d+$Ou3I|h4v-&I;Bv?9?1i}llmJ%g>`G|m{NWC`7V?KS%^%K!Yr%>p&L1H7 z+HUAa_=nFNAo$t>m%n{DcYt1h1bz!4=LdQ1rF5={i}M}%|NB?tx!_spdS8S*zgE~S~3!?0jCpewl2m}icV&7 zAtwXH|FiU+E-c@vNyeM04ZE~eR}0l#k^`n;&J3?zQvp> zg&G$B(lHB^ZcHzX$v!>$=$xqdv!l`!?RW$)Pa*x5QcyYZSjhC@v@}v)JgcUtO^KM? zB66xBRswV^2{GyO2@ul2Jp5@4R+Kq>dsgJEA5h8+pW!Mbf;#X_0_LAdc~i4yg7ETz zP!M;bODkpAR1&w3Z3H(%0T z89*Ous*YgCdLZ0lW3ZlHXydRe@d`Q!C{TD&Mp6UWJd%hpR;~7|#F8?>TpkUlWty1n z3Ln(K8O;x4{YzR4x{XTllBjONBTX4026aL~ekn!L4u2D3=pgvU+^&9pKGPnr9s0|? zxciuFR6dn0sH^R#q$=DA^v^q&Od?HA z0-ZRNNi*rbMtwWg^$3qc9W(B0szBE1(dGWpVBYR#wT0xUGpm%0lf->QGjE9XbRH%s zquQk<%lqy9JF1l5AzLN{WB24y0Z*FjJwPIJueW@-`T&hq!`_a~3Po_s9^qg|as-yQw zyD7HE>O8YooL*#*kxPw{go!%`WYQE2);wH_a(FZrO9MS57RaPqpTir0U!i>^g};9o zZF+ajaL(BS$N=mcKV<%Xnf~J~E8(-Z);Ph-iK33Sgi{874H;Mo{d3tBo(mH6&r`SG zCLHcpRUdmf++rB+h#TCxwu?D0r`s32-2A1x2)E=ane5xB`lw-Y+5?=J?is0NsYcET zW9aw>c2%bSF_JUGK*FVBvzO4T?gQ^4)d+oP<#i5Fg>uaZ&;+K`@97KmoVV6Ul$Tr` z+`Lg!9H|wIRLa-#e0yx2)e38ud-;1{{7PyXXiq}o2h@zZDx^0T6+Z~*f*Yuj^>8pi z1}S#6Zd=9?fM1I>13Q{Z2jbM#EbZ=D{GxaGlk}vY8R&SM!}SxfsIaNMt6MgOrpwf_A4|d?Y%E!irpOTBbE*%ZJ`8QOKTX6e@}>HPR$Ju7 zjgy)--8SUIG zA#Ntx?hehq53iUQ#bmfiSMoncNh=!JVx%xGo>n{OYjS-TG%lW1xr)}?lOJ#C_Hg+S z`^F_5I16-H@Jr#sLk=H-sB8{V z9YEh~Lv--^dJIZ!l-f%ZLQbqf3P zf_nImm`MoOj+5L@OEmR3s!;55W7LsZOOEy!xP93*$!gQ}yOa0Ede7I>*D~#!n={Qr z?y&C(A}GRj)`}u54PV2~@(5qyWtx_rCL3Y1QUh~Nn(7hlHhX<i6rT*TbpxMN8s36;$hro$!+84k*MW|i-zz+|?JD#r z_PkfSr0EDPwc-Y6$qW1CFF1Jbn8s6w4gm}wUGC*cy_I&fhP?rYK=fxeQs8heOdJ+A zG6Q?0V>BL;A}=h~6gV)kq599}u|!PxYJLK1&WkQ@vS#b%l~?NF5_jHr!ROpJ|3i2f zaGq2CoS~sJMs)_uzhcy0_YM@`8y0v8t|BZgtXm2X#s-@C$=E~XanC{0un0&_Wh^Pv z)L*ha51AZHCYdayVjn%aahRj#8E0`%x5tu=vfK*{mjsLFp-a%;iH5rr`*77guXguT z9?2o|>NiW>U6-{{&{DW>yq;JFAiiu4*FFpeyJQrVPr(B;HY?Dl*bvRtzJsiwYk$^DKjhsbCq&t;?JFC(v~iOUagMTP&3_>w*O&ys&G;^R&d=`}-xU+xH= zOyZx<;|U_X-K!4S6SFLSwQ%c0eNlGDG6k|K%X6NrP1p}8GvnwWuSo9$+9&4m&LMt0 ztJ|0~+ED6Xce2W6QzXr5M_-MY@qcOUfi$$Vqy5q%P;GpAnYkG*&Cq9yF}keO5>UP@ z>Nb>bRO5WDr)t;=kiuEhK}{R z{`&WqeVo_2AA!O}6@#$hDDmeXO*4+?3@sYIA;Pc2zToN}oy3tRv)UK(>V*A1sB-+; zNyWd;bWMoG=n&Cvil-R|o`}WWII}dY;u2q>7p!_2B+%}32qI-PB7J1X3i4fl=LSu6fpkrmVd4=z}4C2bnZ8t`;Fgzzad@*)n8cDFNC9O#FrMt1-aH=bJ{^oYo&mJFlN97M_1((D`fn5<`Klvin(p%n zyM{sc0GIpV6_uo^R}31jHwTFX`5ZdE)dmP=uJ&<;l0PulXqbrJ!I&0Y+rh`euiEayuv!slr6>j(< zrGF+_nrW}UOqL9w+85@q)wgmlGeM-+?Mc{{{k)zRn!0g literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/example/libusbAndroidTest/MainActivity.java b/app/src/main/java/com/example/libusbAndroidTest/MainActivity.java index 8212006..1892988 100644 --- a/app/src/main/java/com/example/libusbAndroidTest/MainActivity.java +++ b/app/src/main/java/com/example/libusbAndroidTest/MainActivity.java @@ -1,13 +1,17 @@ package com.example.libusbAndroidTest; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import android.Manifest; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.graphics.Color; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbDeviceConnection; @@ -17,6 +21,7 @@ import android.os.Bundle; import android.util.Log; import android.view.View; +import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TextView; @@ -40,9 +45,11 @@ public class MainActivity extends AppCompatActivity { private CheckBox autoApply; - private int deviceDescriptor = -1; + private Button recordPermissionButton; + private int deviceDescriptor = -1; private static String deviceName; + private static final String TAG = "USB DAC Volume Adjustment" ; private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION"; @@ -81,13 +88,8 @@ protected void connectDevice(UsbDevice device) if(autoApply.isChecked()){ setDeviceVolume(fileDescriptor); + finishAndRemoveTask(); } - - - // Example of a call to a native method - tv.setText(deviceName); - tv.setBackgroundColor(Color.TRANSPARENT); - } protected void checkUsbDevices() @@ -115,11 +117,18 @@ protected void onCreate(Bundle savedInstanceState) { tv = binding.sampleText; volInput = binding.volume; autoApply = binding.autoApply; + recordPermissionButton = binding.recordPermissionButton; SharedPreferences settings = getApplicationContext().getSharedPreferences("myPrefs", 0); volInput.setText(settings.getString("volume", "0000")); autoApply.setChecked(settings.getBoolean("autoApply", false)); + if (ContextCompat.checkSelfPermission(this, + Manifest.permission.RECORD_AUDIO) + == PackageManager.PERMISSION_GRANTED) { + recordPermissionButton.setEnabled(false); + } + // Initialize UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); @@ -188,4 +197,16 @@ public void setDeviceVolume(int fileDescriptor){ setDeviceVolume(fileDescriptor, hexStringToByteArray(volume)); } + + // Trigger the permission popup + public void recordPermissionButtonPressed(View view) { + ActivityCompat.requestPermissions(this, + new String[]{Manifest.permission.RECORD_AUDIO}, + 1); + if (ContextCompat.checkSelfPermission(this, + Manifest.permission.RECORD_AUDIO) + == PackageManager.PERMISSION_GRANTED) { + recordPermissionButton.setEnabled(false); + } + } } \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d1..0000000 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index 07d5da9..ca3826a 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -1,170 +1,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xmlns:android="http://schemas.android.com/apk/res/android"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..345888d --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index ba38f66..48aac65 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -29,6 +29,19 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/auto_apply" /> +