Support MediaBrowserService in AOSP Music

* Use MediaSession and MediaController to interact between playback
  service and playback applications
* Introduced MusicProvdier to scan music resources on local disk
* Removed unnecessary intents and unused activities
* Disabled playlist add, edit, delete function temporarily

Bug: 34748293
Test: make, playing music, browse through Bluetooth on Carkit
Change-Id: Ic88847aa0b3dd4ef5e13afcb839c78544ac05a2a
diff --git a/src/com/android/music/MusicBrowserActivity.java b/src/com/android/music/MusicBrowserActivity.java
index 426b91c..b6b30e8 100644
--- a/src/com/android/music/MusicBrowserActivity.java
+++ b/src/com/android/music/MusicBrowserActivity.java
@@ -17,18 +17,14 @@
 package com.android.music;
 
 import android.Manifest.permission;
-import android.content.pm.PackageManager;
-import com.android.music.MusicUtils.ServiceToken;
-
 import android.app.Activity;
-import android.content.ComponentName;
-import android.content.ServiceConnection;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.os.IBinder;
-import android.os.RemoteException;
+import com.android.music.utils.LogHelper;
 
-public class MusicBrowserActivity extends Activity implements MusicUtils.Defs {
-    private ServiceToken mToken;
+public class MusicBrowserActivity extends Activity {
+    private static final String TAG = LogHelper.makeLogTag(MusicBrowserActivity.class);
+
     private static final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 42;
 
     public MusicBrowserActivity() {}
@@ -39,6 +35,7 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        LogHelper.d(TAG, "onCreate()");
         if (checkSelfPermission(permission.READ_EXTERNAL_STORAGE)
                 != PackageManager.PERMISSION_GRANTED) {
             requestPermissions(new String[] {permission.READ_EXTERNAL_STORAGE},
@@ -50,45 +47,20 @@
 
     public void initApp() {
         int activeTab = MusicUtils.getIntPref(this, "activetab", R.id.artisttab);
+        LogHelper.d(TAG, "initApp() activeTab = ", activeTab);
         if (activeTab != R.id.artisttab && activeTab != R.id.albumtab && activeTab != R.id.songtab
                 && activeTab != R.id.playlisttab) {
             activeTab = R.id.artisttab;
         }
         MusicUtils.activateTab(this, activeTab);
-
-        String shuf = getIntent().getStringExtra("autoshuffle");
-        if ("true".equals(shuf)) {
-            mToken = MusicUtils.bindToService(this, autoshuffle);
-        }
     }
 
     @Override
     public void onDestroy() {
-        if (mToken != null) {
-            MusicUtils.unbindFromService(mToken);
-        }
+        LogHelper.d(TAG, "onDestroy()");
         super.onDestroy();
     }
 
-    private ServiceConnection autoshuffle = new ServiceConnection() {
-        public void onServiceConnected(ComponentName classname, IBinder obj) {
-            // we need to be able to bind again, so unbind
-            try {
-                unbindService(this);
-            } catch (IllegalArgumentException e) {
-            }
-            IMediaPlaybackService serv = IMediaPlaybackService.Stub.asInterface(obj);
-            if (serv != null) {
-                try {
-                    serv.setShuffleMode(MediaPlaybackService.SHUFFLE_AUTO);
-                } catch (RemoteException ex) {
-                }
-            }
-        }
-
-        public void onServiceDisconnected(ComponentName classname) {}
-    };
-
     @Override
     public void onRequestPermissionsResult(
             int requestCode, String permissions[], int[] grantResults) {