diff --git a/.github/workflows/build_aab.yml b/.github/workflows/build_aab.yml index 0d5b86a4..25a9337e 100644 --- a/.github/workflows/build_aab.yml +++ b/.github/workflows/build_aab.yml @@ -18,13 +18,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: "zulu" - java-version: "11" + java-version: "17" - name: Setup Flutter stable uses: subosito/flutter-action@v2 @@ -41,7 +41,7 @@ jobs: run: flutter build appbundle - name: Upload aab - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: path: build/app/outputs/bundle/release/*.aab diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 3defd84e..282a6cf3 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -9,18 +9,19 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Java - uses: actions/setup-java@v3.9.0 + uses: actions/setup-java@v4 with: distribution: "zulu" - java-version: "11" + java-version: "17" - name: Setup Flutter - uses: subosito/flutter-action@v2.8.0 + uses: subosito/flutter-action@v2 with: channel: "stable" + flutter-version-file: pubspec.yaml # path to pubspec.yaml # File can be encoded to base64 on https://base64.guru/converter/encode/file - name: Decoding android/key.properties @@ -34,7 +35,7 @@ jobs: run: flutter build appbundle - name: Upload aab - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: "!github.event.release.prerelease" with: name: aab-release @@ -55,7 +56,7 @@ jobs: echo ":white_check_mark: Build split apk" >> $GITHUB_STEP_SUMMARY - name: Upload apks - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: apk-releases path: build/app/outputs/apk/release/*.apk @@ -69,10 +70,10 @@ jobs: needs: build_android steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: apk-releases @@ -80,7 +81,7 @@ jobs: run: curl -s https://gist.githubusercontent.com/iqfareez/f57405016cc8bcc51cdcd2879c88807a/raw/5d9bbed7231a9e56bf24b88ab5286cee73dae173/rename_apk.sh | bash -s MPT . - name: Upload file to the assets release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: files: "*.apk" @@ -94,7 +95,7 @@ jobs: needs: build_android steps: - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: aab-release diff --git a/.github/workflows/build_apk.yml b/.github/workflows/build_apk.yml index 432c054a..586d67fb 100644 --- a/.github/workflows/build_apk.yml +++ b/.github/workflows/build_apk.yml @@ -23,13 +23,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: "zulu" - java-version: "11" + java-version: "17" - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -48,25 +48,25 @@ jobs: flutter build apk --split-per-abi --release -v - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: splitted apk artifacts path: build/app/outputs/apk/release/*.apk - name: Upload artifacts (arm64-v8a) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: arm64-v8a artifact path: build/app/outputs/apk/release/*-arm64-v8a-release.apk - name: Upload artifacts (armeabi-v7a) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: armeabi-v7a artifact path: build/app/outputs/apk/release/*-armeabi-v7a-release.apk - name: Upload artifacts (x86_64) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: x86_64 artifact path: build/app/outputs/apk/release/*-x86_64-release.apk @@ -80,7 +80,7 @@ jobs: flutter build apk --release - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: fat apk artifact path: build/app/outputs/apk/release/*.apk diff --git a/.gitignore b/.gitignore index df736025..dcf1e684 100644 --- a/.gitignore +++ b/.gitignore @@ -86,10 +86,6 @@ app.*.map.json *.apk *.aab -# key file -key.properties -android/key.jks - # scratch file scratch.dart untranslated.txt diff --git a/.metadata b/.metadata index 6daa7e3e..65a4a371 100644 --- a/.metadata +++ b/.metadata @@ -4,7 +4,27 @@ # This file should be version controlled and should not be manually edited. version: - revision: 5f21edf8b66e31a39133177319414395cc5b5f48 - channel: stable + revision: "5dcb86f68f239346676ceb1ed1ea385bd215fba1" + channel: "stable" project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + - platform: android + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/android/.gitignore b/android/.gitignore index bc2100d8..6f568019 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -5,3 +5,9 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle index 084ec9e0..7bbff129 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,32 +1,30 @@ plugins { id "com.android.application" + // START: FlutterFire Configuration + id 'com.google.gms.google-services' + id 'com.google.firebase.crashlytics' + // END: FlutterFire Configuration id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" - id "com.google.gms.google-services" - id "com.google.firebase.crashlytics" } def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') +def localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> + localPropertiesFile.withReader("UTF-8") { reader -> localProperties.load(reader) } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") if (flutterVersionCode == null) { - flutterVersionCode = '1' + flutterVersionCode = "1" } -def flutterVersionName = localProperties.getProperty('flutter.versionName') +def flutterVersionName = localProperties.getProperty("flutter.versionName") if (flutterVersionName == null) { - flutterVersionName = '1.0' + flutterVersionName = "1.0" } def keystoreProperties = new Properties() @@ -36,28 +34,26 @@ if (keystorePropertiesFile.exists()) { } android { - compileSdkVersion 34 - - lintOptions { - disable 'InvalidPackage' - } + namespace = "live.iqfareez.waktusolatmalaysia" + compileSdk = 34 + ndkVersion = flutter.ndkVersion compileOptions { // Flag to enable support for the new language APIs coreLibraryDesugaringEnabled true // Sets Java compatibility to Java 8 - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } defaultConfig { - applicationId "live.iqfareez.waktusolatmalaysia" - minSdkVersion 21 - targetSdkVersion 34 - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - multiDexEnabled true - //TODO: Remove multidex when app support min 21 or higher + applicationId = "live.iqfareez.waktusolatmalaysia" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdk = 21 + targetSdk = 34 + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName } signingConfigs { @@ -71,16 +67,13 @@ android { buildTypes { release { - signingConfig signingConfigs.release + signingConfig = signingConfigs.release } } - buildFeatures { - viewBinding true - } } flutter { - source '../..' + source = "../.." } dependencies { @@ -91,4 +84,4 @@ dependencies { implementation 'androidx.window:window-java:1.0.0' implementation 'com.google.code.gson:gson:2.10.1' implementation 'com.google.android.material:material:1.7.0' -} \ No newline at end of file +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index 85143519..399f6981 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,6 +1,6 @@ - - diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 0abb531c..5c468aab 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,11 +1,4 @@ - - - + @@ -47,6 +40,7 @@ android:exported="true" android:hardwareAccelerated="true" android:launchMode="singleTop" + android:taskAffinity="" android:theme="@style/LaunchTheme" android:windowSoftInputMode="adjustResize"> - + android:name="io.flutter.embedding.android.NormalTheme" + android:resource="@style/NormalTheme" + /> - - - + + - + + @@ -86,5 +80,15 @@ android:name="flutterEmbedding" android:value="2" /> + + + + + + + + diff --git a/android/app/src/main/java/live/iqfareez/waktusolatmalaysia/MainActivity.java b/android/app/src/main/java/live/iqfareez/waktusolatmalaysia/MainActivity.java deleted file mode 100644 index aa84dae9..00000000 --- a/android/app/src/main/java/live/iqfareez/waktusolatmalaysia/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package live.iqfareez.waktusolatmalaysia; - -import io.flutter.embedding.android.FlutterActivity; - -public class MainActivity extends FlutterActivity { -} diff --git a/android/app/src/main/kotlin/live/iqfareez/waktu_solat_malaysia/MainActivity.kt b/android/app/src/main/kotlin/live/iqfareez/waktu_solat_malaysia/MainActivity.kt deleted file mode 100644 index 93089894..00000000 --- a/android/app/src/main/kotlin/live/iqfareez/waktu_solat_malaysia/MainActivity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package live.iqfareez.waktu_solat_malaysia - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() { -} diff --git a/android/app/src/main/kotlin/live/iqfareez/waktusolatmalaysia/MainActivity.kt b/android/app/src/main/kotlin/live/iqfareez/waktusolatmalaysia/MainActivity.kt new file mode 100644 index 00000000..7c339a98 --- /dev/null +++ b/android/app/src/main/kotlin/live/iqfareez/waktusolatmalaysia/MainActivity.kt @@ -0,0 +1,5 @@ +package live.iqfareez.waktusolatmalaysia + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/android/app/src/main/java/live/iqfareez/waktusolatmalaysia/SolatHorizontalWidget.kt b/android/app/src/main/kotlin/live/iqfareez/waktusolatmalaysia/SolatHorizontalWidget.kt similarity index 100% rename from android/app/src/main/java/live/iqfareez/waktusolatmalaysia/SolatHorizontalWidget.kt rename to android/app/src/main/kotlin/live/iqfareez/waktusolatmalaysia/SolatHorizontalWidget.kt diff --git a/android/app/src/main/java/live/iqfareez/waktusolatmalaysia/SolatVerticalWidget.kt b/android/app/src/main/kotlin/live/iqfareez/waktusolatmalaysia/SolatVerticalWidget.kt similarity index 100% rename from android/app/src/main/java/live/iqfareez/waktusolatmalaysia/SolatVerticalWidget.kt rename to android/app/src/main/kotlin/live/iqfareez/waktusolatmalaysia/SolatVerticalWidget.kt diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..2e0593f2 --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 00000000..06952be7 --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 1a5a2be2..d1d13fc7 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -1,19 +1,19 @@ - - -