Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0aec197f authored by Alexander Martinz's avatar Alexander Martinz Committed by Michael Bestas
Browse files

Eleven: add initial gradle support



 * add AndroidManifest without uses-sdk tags for gradle
   as it recently started to complain a lot.

Change-Id: I91bc2ba73acdd13e6a0147bbca41323983bf8483
Signed-off-by: Alexander Martinz's avatarAlexander Martinz <amartinz@shiftphones.com>
parent 8588b9b3
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
bin/
gen/
/bin/
/build/
/gen/
/local.properties

*.iml
**~
**.DS_Store
.gradle/
.idea/
+1 −1
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ LOCAL_STATIC_JAVA_LIBRARIES := \

LOCAL_STATIC_ANDROID_LIBRARIES := \
    android-support-v4 \
    android-support-v7-appcompat \
    android-support-v7-cardview \
    android-support-v7-palette \
    android-support-v7-recyclerview
@@ -39,5 +40,4 @@ endif
include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

include $(BUILD_MULTI_PREBUILT)
+220 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012 Andrew Neal
     Copyright (C) 2014 The CyanogenMod Project
     Copyright (C) 2019 The LineageOS Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.lineageos.eleven"
    android:versionCode="3"
    android:versionName="3.0">

    <!-- Used for caching and creating new playlists -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- Used to check for a network connection -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- Used to download images -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Used to keep the service running when the phone sleeps -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!-- The main service uses a sticky broadcast -->
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <!-- Lower or raise the music based on the phone state -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!-- Used to set the devices's ringtone -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <!-- Used to create launcher shortcuts -->
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <!-- Allows Eleven to read from External Storage -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <!-- Allows Eleven to modify media files on external storage -->
    <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />

    <!-- Audio Visualizer Permissions -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <!-- Accelerometer feature for shake to play -->
    <uses-feature android:name="android.hardware.sensor.accelerometer" />

    <application
        android:name="org.lineageos.eleven.ElevenApplication"
        android:allowBackup="true"
        android:allowTaskReparenting="true"
        android:hardwareAccelerated="@bool/config_hardwareAccelerated"
        android:appCategory="audio"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="@bool/config_largeHeap"
        android:taskAffinity="org.lineageos.eleven.task"
        android:theme="@style/Eleven.Theme">

        <!-- Searchable -->
        <meta-data
            android:name="android.app.default_searchable"
            android:value=".ui.activities.SearchActivity" />
        <!-- Main activity -->
        <activity
            android:name="org.lineageos.eleven.ui.activities.HomeActivity"
            android:windowSoftInputMode="adjustPan"
            android:launchMode="singleTop"
            android:exported="true"
            android:theme="@style/Eleven.Theme.ActionBar.Overlay">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.MUSIC_PLAYER" />

                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.APP_MUSIC" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:mimeType="vnd.android.cursor.dir/playlist" />
                <data android:mimeType="vnd.android.cursor.dir/albums" />
                <data android:mimeType="vnd.android.cursor.dir/artists" />
            </intent-filter>
            <intent-filter>
                <action android:name="org.lineageos.eleven.AUDIO_PLAYER" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <!-- Search interface -->
        <activity
            android:name="org.lineageos.eleven.ui.activities.SearchActivity"
            android:windowSoftInputMode="adjustResize"
            android:exported="true"
            android:theme="@style/Eleven.Theme">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
                <action android:name="android.intent.action.MEDIA_SEARCH" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
        </activity>
        <!-- Used to set options -->
        <activity
            android:name="org.lineageos.eleven.ui.activities.SettingsActivity"
            android:label="@string/menu_settings"/>
        <!-- Audio Preview -->
        <activity
            android:name=".ui.activities.preview.AudioPreviewActivity"
            android:launchMode="singleTask"
            android:excludeFromRecents="true"
            android:taskAffinity=""
            android:theme="@style/Theme.AudioPreview">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:scheme="content" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:scheme="file" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="http" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
            </intent-filter>
        </activity>
        <!-- 4x1 App Widget -->
        <receiver
            android:name="org.lineageos.eleven.appwidgets.AppWidgetSmall"
            android:exported="false"
            android:label="@string/app_widget_small" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/app_widget_small" />
        </receiver>
        <!-- 4x2  App Widget -->
        <receiver
            android:name="org.lineageos.eleven.appwidgets.AppWidgetLarge"
            android:exported="false"
            android:label="@string/app_widget_large" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/app_widget_large" />
        </receiver>
        <!-- 4x2 alternate App Widget -->
        <receiver
            android:name="org.lineageos.eleven.appwidgets.AppWidgetLargeAlternate"
            android:exported="false"
            android:label="@string/app_widget_large_alt" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/app_widget_large_alternate" />
        </receiver>
        <!-- Media button receiver -->
        <receiver android:name="org.lineageos.eleven.MediaButtonIntentReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
                <action android:name="android.media.AUDIO_BECOMING_NOISY" />
            </intent-filter>
        </receiver>
        <!-- Used to recalculate sorting of songs based on the user's locale -->
        <receiver android:name=".locale.LocaleChangeReceiver">
            <intent-filter>
                <action android:name="android.intent.action.LOCALE_CHANGED"/>
            </intent-filter>
        </receiver>
        <!-- Music service -->
        <service
            android:name="org.lineageos.eleven.MusicPlaybackService"
            android:label="@string/app_name"
            android:process=":main" />
    </application>

</manifest>
+3 −3
Original line number Diff line number Diff line
@@ -20,8 +20,8 @@
    android:versionName="3.0">

    <uses-sdk
        android:minSdkVersion="24"
        android:targetSdkVersion="26" />
        android:minSdkVersion="26"
        android:targetSdkVersion="28" />

    <original-package android:name="com.cyanogenmod.eleven" />

build.gradle

0 → 100644
+130 −0
Original line number Diff line number Diff line
buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:3.3.1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task updateGradleWrapper(type: Wrapper) {
    // https://docs.gradle.org/current/release-notes.html
    // https://github.com/gradle/gradle/releases
    gradleVersion = '5.1.1'
    distributionUrl = "https://services.gradle.org/distributions/gradle-${gradleVersion}-all.zip"
}

//==================================================================================================

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "org.lineageos.eleven"

        minSdkVersion 26
        targetSdkVersion 28

        versionCode 3
        versionName '3.0'

        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
    }

    buildTypes {
        debug {
            applicationIdSuffix ".dev"

            debuggable true
            minifyEnabled false
            shrinkResources false
            zipAlignEnabled false
        }
        debugProguard {
            applicationIdSuffix ".dev"

            debuggable true
            proguardFiles 'proguard.cfg', 'proguard-debug.cfg'
            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
        }
        release {
            debuggable false
            proguardFiles 'proguard.cfg'
            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
        }
    }

    dexOptions {
        dexInProcess true
        preDexLibraries true
    }

    lintOptions {
        baseline file("lint-baseline.xml")

        abortOnError true
        checkAllWarnings true
        showAll true

        warningsAsErrors true

        // HTML report is enough (can be found inside build/reports/)
        xmlReport false

        // do not warn about translations
        disable 'MissingTranslation', 'ExtraTranslation'
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude '.readme'
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest-gradle.xml'

            aidl.srcDirs = ['src']
            assets.srcDirs = ['assets']
            java.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            resources.srcDirs = ['res']
        }
    }
}

dependencies {
    // see https://developer.android.com/topic/libraries/support-library/revisions.html
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation "com.android.support:cardview-v7:28.0.0"
    implementation "com.android.support:palette-v7:28.0.0"
    implementation "com.android.support:recyclerview-v7:28.0.0"
}
Loading