Compare commits

..

6 Commits
v1.0 ... master

Author SHA1 Message Date
250bc3bb48 fix: permissions 2025-02-18 20:38:50 +01:00
f9a76afaa7 feat: use dark theme 2025-02-18 19:15:11 +01:00
f70e9b79f0 chore: update gradle jetbrains 2025-02-18 18:40:11 +01:00
d21365ba30 refactor: use dark theme with red font colors 2025-02-18 18:39:38 +01:00
1328bb3ac8 chore: upgrade graddle 2025-02-18 18:39:26 +01:00
b1a2114c19 change logo 2024-02-01 20:19:19 +01:00
45 changed files with 12312 additions and 25 deletions

2
.idea/compiler.xml generated
View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
<bytecodeTargetLevel target="21" />
</component>
</project>

1
.idea/gradle.xml generated
View File

@ -4,6 +4,7 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">

3
.idea/misc.xml generated
View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -0,0 +1,5 @@
https://github.com/mail2chromium/Compile_WebRTC_Library_For_Android
https://github.com/mail2chromium/Android_Realtime_Communication_Using_WebRTC
https://github.com/mail2chromium/Compile_WebRTC_Library_For_Android
https://github.com/mail2chromium/Android-Audio-Processing-Using-WebRTC
https://github.com/mail2chromium/Android-Native-Development-For-WebRTC

View File

@ -27,6 +27,7 @@ android {
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("debug")
}
}
compileOptions {

View File

@ -2,11 +2,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- <uses-feature android:name="android.hardware.camera" android:required="false" />-->
<uses-feature android:name="android.hardware.camera.any" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.SYSTEM_CAMERA" tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.SYSTEM_MICROPHONE" tools:ignore="ProtectedPermissions" />
@ -16,14 +17,14 @@
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/wittrail_logo_back"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/wittrail_logo_back"
android:supportsRtl="true"
android:theme="@style/Theme.WittrailAndroid"
tools:targetApi="31">
android:theme="@style/Theme.WittrailAndroid.Dark"
tools:targetApi="31">
<service
android:name="RecordingService"
android:name="CameraXRecordingService"
android:foregroundServiceType="camera|microphone"
android:exported="false"
tools:ignore="ForegroundServicePermission">
@ -32,10 +33,9 @@
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.WittrailAndroid">
android:theme="@style/Theme.WittrailAndroid.Dark">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

View File

@ -30,7 +30,7 @@ import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
class RecordingService : LifecycleService() {
class CameraXRecordingService : LifecycleService() {
private lateinit var cameraProviderFuture: ListenableFuture<ProcessCameraProvider>
private val tag = "RecordingService"
private val fileNameFormat = "yyyy-MM-dd-HH-mm-ss-SSS"

View File

@ -12,6 +12,7 @@ import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
@ -37,6 +38,7 @@ class MainActivity : AppCompatActivity() {
@RequiresApi(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
@ -122,8 +124,8 @@ class MainActivity : AppCompatActivity() {
@RequiresApi(Build.VERSION_CODES.O)
private fun startRecordingService(useFrontCamera: Boolean) {
Log.e("main", "startRecordingService")
val serviceIntent = Intent(this, RecordingService::class.java).apply {
action = RecordingService.ACTION_START_RECORDING
val serviceIntent = Intent(this, CameraXRecordingService::class.java).apply {
action = CameraXRecordingService.ACTION_START_RECORDING
putExtra("useFrontCamera", useFrontCamera)
}
startForegroundService(serviceIntent)
@ -131,7 +133,7 @@ class MainActivity : AppCompatActivity() {
private fun stopRecordingService() {
Log.e("main", "stopRecordingService")
val serviceIntent = Intent(this, RecordingService::class.java)
val serviceIntent = Intent(this, CameraXRecordingService::class.java)
stopService(serviceIntent)
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<vector
android:height="108dp"
android:width="108dp"
android:viewportHeight="108"
android:viewportWidth="108"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z"/>
<path android:fillColor="#00000000" android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,0L19,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M39,0L39,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M59,0L59,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M79,0L79,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M99,0L99,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,19L108,19"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,39L108,39"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,49L108,49"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,59L108,59"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,69L108,69"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,79L108,79"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,89L108,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,99L108,99"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,29L89,29"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,39L89,39"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,49L89,49"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,59L89,59"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,69L89,69"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,79L89,79"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M29,19L29,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M39,19L39,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M49,19L49,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M59,19L59,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M69,19L69,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
</vector>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -10,20 +10,23 @@
android:id="@+id/startFrontCameraButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start Front Camera" />
android:textColor="@color/red"
android:text="@string/start_front_camera" />
<Button
android:id="@+id/startBackCameraButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start Back Camera"
android:text="@string/start_back_camera"
android:textColor="@color/red"
android:layout_marginTop="16dp" />
<Button
android:id="@+id/stopCameraButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop Recording"
android:text="@string/stolp_recording"
android:textColor="@color/red"
android:layout_marginTop="16dp"
android:visibility="gone" />
</LinearLayout>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/wittrail_logo_background"/>
<foreground android:drawable="@drawable/wittrail_logo_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/wittrail_logo_back_background"/>
<foreground android:drawable="@drawable/wittrail_logo_back_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/wittrail_logo_back_background"/>
<foreground android:drawable="@drawable/wittrail_logo_back_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/wittrail_logo_background"/>
<foreground android:drawable="@drawable/wittrail_logo_foreground"/>
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Original colors -->
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
@ -7,4 +8,13 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>
<color name="red">#FF0000</color>
<!-- Dark theme colors -->
<color name="dark_primary">#121212</color>
<color name="dark_primary_variant">#1F1B24</color>
<color name="dark_accent">#BB86FC</color>
<color name="dark_background">#000000</color>
<color name="dark_surface">#121212</color>
<color name="dark_on_primary">#FFFFFF</color>
</resources>

View File

@ -1,3 +1,6 @@
<resources>
<string name="app_name">Wittrail-Android</string>
<string name="app_name">Wittrail</string>
<string name="start_back_camera">Start Back Camera</string>
<string name="start_front_camera">Start Front Camera</string>
<string name="stolp_recording">Stop Recording</string>
</resources>

View File

@ -1,9 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="Theme.WittrailAndroid" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<!-- Dark theme for your application -->
<style name="Theme.WittrailAndroid.Dark" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Window background -->
<item name="android:windowBackground">@color/dark_background</item>
<item name="android:colorBackground">@color/dark_background</item>
<!-- Primary brand color -->
<item name="colorPrimary">@color/red</item>
<!-- Primary brand color variant -->
<item name="colorPrimaryDark">@color/red</item>
<!-- Accent color -->
<item name="colorAccent">@color/dark_accent</item>
<!-- Surface and onPrimary colors can be used by Material components -->
<item name="android:textColorPrimary">@color/red</item>
</style>
<!-- Base application theme -->
<style name="Theme.WittrailAndroid" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your light theme here -->
</style>
</resources>

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View File

@ -1,5 +1,5 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id("com.android.application") version "8.2.2" apply false
id("com.android.application") version "8.7.3" apply false
id("org.jetbrains.kotlin.android") version "1.9.0" apply false
}

View File

@ -1,6 +1,6 @@
#Sun Jan 28 20:36:02 CET 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists