OSDN Git Service

Avoid NPE
[android-x86/packages-apps-Eleven.git] / AndroidManifest.xml
index 26505ef..e52f9f9 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2007 The Android Open Source Project
+<!-- Copyright (C) 2012 Andrew Neal
+     Copyright (C) 2014 The CyanogenMod 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="com.android.music"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-    <original-package android:name="com.android.music" />
+    package="com.cyanogenmod.eleven"
+    android:versionCode="3"
+    android:versionName="3.0" >
 
     <uses-sdk
-        android:maxSdkVersion="15"
-        android:minSdkVersion="14" />
+        android:minSdkVersion="24"
+        android:targetSdkVersion="24" />
 
-    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <!-- 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" />
-    <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.SET_WALLPAPER" />
+    <!-- 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" />
+    <!-- Used to check if the app is in the background -->
+    <uses-permission android:name="android.permission.REAL_GET_TASKS" />
+    <!-- Allows Eleven to read from External Storage -->
+    <uses-permission android:name="android.permission.READ_EXTERNAL_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="com.cyanogenmod.eleven.ElevenApplication"
+        android:allowBackup="true"
         android:allowTaskReparenting="true"
-        android:hardwareAccelerated="true"
-        android:icon="@drawable/app_music"
-        android:label="@string/musicbrowserlabel"
-        android:taskAffinity="android.task.music"
-        android:theme="@android:style/Theme.Holo" >
+        android:hardwareAccelerated="@bool/config_hardwareAccelerated"
+        android:icon="@mipmap/ic_launcher_eleven"
+        android:label="@string/app_name"
+        android:largeHeap="@bool/config_largeHeap"
+        android:taskAffinity="com.cyanogenmod.eleven.task"
+        android:theme="@style/Eleven.Theme">
+
+        <!-- Searchable -->
         <meta-data
             android:name="android.app.default_searchable"
-            android:value="com.android.music.QueryBrowserActivity" />
-
+            android:value=".ui.activities.SearchActivity" />
+        <!-- Main activity -->
         <activity
-            android:name="com.android.music.MusicBrowserActivity"
+            android:name="com.cyanogenmod.eleven.ui.activities.HomeActivity"
+            android:windowSoftInputMode="adjustPan"
+            android:launchMode="singleTop"
             android:exported="true"
-            android:theme="@android:style/Theme.NoTitleBar" >
+            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.DEFAULT" />
                 <category android:name="android.intent.category.LAUNCHER" />
                 <category android:name="android.intent.category.APP_MUSIC" />
+                <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-        </activity>
-
-        <receiver android:name="com.android.music.MediaButtonIntentReceiver" >
-            <intent-filter>
-                <action android:name="android.intent.action.MEDIA_BUTTON" />
-                <action android:name="android.media.AUDIO_BECOMING_NOISY" />
-            </intent-filter>
-        </receiver>
-        <!--
-             This is the "current music playing" panel, which has special
-             launch behavior.  We clear its task affinity, so it will not
-             be associated with the main media task and if launched
-             from a notification will not bring the rest of the media app
-             to the foreground.  We make it singleTask so that when others
-             launch it (such as media) we will launch in to our own task.
-             We set clearTaskOnLaunch because the user
-             can go to a playlist from this activity, so if they later return
-             to it we want it back in its initial state.  We exclude from
-             recents since this is accessible through a notification when
-             appropriate.
-        -->
-        <activity
-            android:name="com.android.music.ColorPicker"
-            android:excludeFromRecents="true"
-            android:taskAffinity=""
-            android:theme="@android:style/Theme.Holo.Dialog" >
             <intent-filter>
-                <action android:name="com.android.music.ColorPicker" />
+                <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>
-        </activity>
-        <activity
-            android:name="com.android.music.Sensitivity"
-            android:label="Sensitivity"
-            android:excludeFromRecents="true"
-            android:taskAffinity=""
-            android:theme="@android:style/Theme.Holo.Dialog" >
             <intent-filter>
-                <action android:name="com.android.music.Sensitivity" />
+                <action android:name="com.cyanogenmod.eleven.AUDIO_PLAYER" />
 
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
+
+        <!-- Search interface -->
         <activity
-            android:name="com.android.music.MediaPlaybackActivity"
-            android:clearTaskOnLaunch="true"
-            android:excludeFromRecents="true"
+            android:name="com.cyanogenmod.eleven.ui.activities.SearchActivity"
+            android:windowSoftInputMode="adjustResize"
             android:exported="true"
-            android:label="@string/mediaplaybacklabel"
-            android:launchMode="singleTask"
-            android:taskAffinity="" >
+            android:theme="@style/Eleven.Theme">
             <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
+                <action android:name="android.intent.action.SEARCH" />
+                <action android:name="android.intent.action.MEDIA_SEARCH" />
 
                 <category android:name="android.intent.category.DEFAULT" />
-
-                <data android:scheme="content" />
-                <data android:host="media" />
-                <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="com.android.music.PLAYBACK_VIEWER" />
 
-                <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="AudioPreview"
+            android:name="com.cyanogenmod.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:exported="true"
             android:taskAffinity=""
-            android:theme="@android:style/Theme.Dialog" >
+            android:theme="@style/Theme.AudioPreview">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
 
                 <category android:name="android.intent.category.DEFAULT" />
 
-                <data android:scheme="file" />
+                <data android:scheme="content" />
                 <data android:mimeType="audio/*" />
                 <data android:mimeType="application/ogg" />
                 <data android:mimeType="application/x-ogg" />
                 <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: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 android:priority="-1" >
+            <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="content" />
+                <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>
-        <activity
-            android:name="com.android.music.ArtistAlbumBrowserActivity"
-            android:exported="false" >
-            <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-
-                <data android:mimeType="vnd.android.cursor.dir/artistalbum" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name="com.android.music.AlbumBrowserActivity"
-            android:exported="false" >
-            <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-
-                <data android:mimeType="vnd.android.cursor.dir/album" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name="com.android.music.NowPlayingActivity"
-            android:exported="false" >
-            <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-
-                <data android:mimeType="vnd.android.cursor.dir/nowplaying" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name="com.android.music.TrackBrowserActivity"
-            android:exported="false" >
-            <intent-filter>
-                <action android:name="android.intent.action.EDIT" />
-                <action android:name="android.intent.action.PICK" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-
-                <data android:mimeType="vnd.android.cursor.dir/track" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name="com.android.music.QueryBrowserActivity"
-            android:exported="true"
-            android:theme="@android:style/Theme.NoTitleBar" >
-            <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>
-        <activity
-            android:name="com.android.music.PlaylistBrowserActivity"
-            android:exported="true"
-            android:label="@string/musicbrowserlabel" >
-            <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-
-                <data android:mimeType="vnd.android.cursor.dir/playlist" />
-            </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" />
-            </intent-filter>
-        </activity>
-
-        <activity-alias
-            android:name="com.android.music.PlaylistShortcutActivity"
-            android:exported="true"
-            android:icon="@drawable/ic_launcher_shortcut_music_playlist"
-            android:label="@string/musicshortcutlabel"
-            android:targetActivity="com.android.music.PlaylistBrowserActivity" >
-            <intent-filter>
-                <action android:name="android.intent.action.CREATE_SHORTCUT" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity-alias>
-
-        <activity
-            android:name="com.android.music.VideoBrowserActivity"
-            android:exported="false"
-            android:icon="@drawable/app_video"
-            android:label="@string/videobrowserlabel"
-            android:taskAffinity="android.task.video" >
-            <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-
-                <data android:mimeType="vnd.android.cursor.dir/video" />
-            </intent-filter>
-            <!--
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-            -->
-        </activity>
-        <activity
-            android:name="com.android.music.MediaPickerActivity"
-            android:exported="false"
-            android:label="@string/mediapickerlabel" >
-
-            <!--
-            <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="media/*"/>
-                <data android:mimeType="audio/*"/>
-                <data android:mimeType="application/ogg"/>
-                <data android:mimeType="application/x-ogg"/>
-                <data android:mimeType="video/*"/>
-            </intent-filter>
-            <intent-filter>
-                <action android:name="android.intent.action.GET_CONTENT" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.OPENABLE" />
-                <data android:mimeType="media/*"/>
-                <data android:mimeType="audio/*"/>
-                <data android:mimeType="application/ogg"/>
-                <data android:mimeType="application/x-ogg"/>
-                <data android:mimeType="video/*"/>
-            </intent-filter>
-            -->
-        </activity>
-        <activity
-            android:name="com.android.music.MusicPicker"
-            android:exported="true"
-            android:label="@string/music_picker_title" >
-
-            <!--
-                 First way to invoke us: someone asks to get content of
-                 any of the audio types we support.
-            -->
-            <intent-filter>
-                <action android:name="android.intent.action.GET_CONTENT" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.OPENABLE" />
-
-                <data android:mimeType="audio/*" />
-                <data android:mimeType="application/ogg" />
-                <data android:mimeType="application/x-ogg" />
-            </intent-filter>
-            <!--
-                 Second way to invoke us: someone asks to pick an item from
-                 some media Uri.
-            -->
-            <intent-filter>
-                <action android:name="android.intent.action.PICK" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.OPENABLE" />
-
-                <data android:mimeType="vnd.android.cursor.dir/audio" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name="com.android.music.CreatePlaylist"
-            android:exported="false"
-            android:theme="@android:style/Theme.Holo.Dialog" />
-        <activity
-            android:name="com.android.music.RenamePlaylist"
-            android:exported="false"
-            android:theme="@android:style/Theme.Holo.Dialog" />
-        <activity
-            android:name="com.android.music.WeekSelector"
-            android:exported="false"
-            android:theme="@android:style/Theme.Holo.Dialog" />
-        <activity
-            android:name="com.android.music.DeleteItems"
-            android:exported="false"
-            android:theme="@android:style/Theme.Holo.Dialog" />
-        <activity
-            android:name="com.android.music.ScanningProgress"
-            android:exported="false"
-            android:theme="@android:style/Theme.Holo.Dialog" />
-        <activity
-            android:name="com.android.music.MusicSettingsActivity"
-            android:label="@string/settings" />
-        <activity
-            android:name="com.android.music.EditGesturesActivity"
-            android:label="@string/edit_gestures_title" />
-        <activity
-            android:name="com.android.music.CustomizeGestureActivity"
-            android:label="@string/customize_gesture_title" />
-
-        <service
-            android:name="com.android.music.MediaPlaybackService"
-            android:exported="true" />
-
+        <!-- 4x1 App Widget -->
         <receiver
-            android:name="com.android.music.MediaAppWidgetProvider4x1"
-            android:label="Music (4x1)" >
+            android:name="com.cyanogenmod.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/appwidget4x1_info" />
+                android:resource="@xml/app_widget_small" />
         </receiver>
+        <!-- 4x2  App Widget -->
         <receiver
-            android:name="com.android.music.MediaAppWidgetProvider4x2"
-            android:label="Music (4x2)" >
+            android:name="com.cyanogenmod.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/appwidget4x2_info" />
+                android:resource="@xml/app_widget_large" />
         </receiver>
+        <!-- 4x2 alternate App Widget -->
         <receiver
-            android:name="com.android.music.MediaAppWidgetProvider1x1"
-            android:label="Music (1x1)" >
+            android:name="com.cyanogenmod.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/appwidget1x1_info" />
+                android:resource="@xml/app_widget_large_alternate" />
         </receiver>
-        <receiver
-            android:name="com.android.music.MediaAppWidgetProvider3x1"
-            android:label="Music (3x1)" >
+        <!-- Media button receiver -->
+        <receiver android:name="com.cyanogenmod.eleven.MediaButtonIntentReceiver" >
             <intent-filter>
-                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
+                <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>
-
-            <meta-data
-                android:name="android.appwidget.provider"
-                android:resource="@xml/appwidget3x1_info" />
         </receiver>
+        <!-- Music service -->
+        <service
+            android:name="com.cyanogenmod.eleven.MusicPlaybackService"
+            android:label="@string/app_name"
+            android:process=":main" />
     </application>
 
-</manifest>
\ No newline at end of file
+</manifest>