blob: 426b91c22aa5acbf689faef627882f71916ac14a [file] [log] [blame]
The Android Open Source Project792a2202009-03-03 19:32:30 -08001/*
2 * Copyright (C) 2007 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.music;
18
Jack Hef9e434b2017-01-26 16:10:20 -080019import android.Manifest.permission;
20import android.content.pm.PackageManager;
Marco Nelissenf33a5752010-01-27 15:35:43 -080021import com.android.music.MusicUtils.ServiceToken;
22
The Android Open Source Project792a2202009-03-03 19:32:30 -080023import android.app.Activity;
The Android Open Source Project792a2202009-03-03 19:32:30 -080024import android.content.ComponentName;
The Android Open Source Project792a2202009-03-03 19:32:30 -080025import android.content.ServiceConnection;
The Android Open Source Project792a2202009-03-03 19:32:30 -080026import android.os.Bundle;
The Android Open Source Project792a2202009-03-03 19:32:30 -080027import android.os.IBinder;
Marco Nelissen3d4b2622010-01-06 12:46:49 -080028import android.os.RemoteException;
The Android Open Source Project792a2202009-03-03 19:32:30 -080029
Jack Heb0fba8b2017-01-26 15:54:38 -080030public class MusicBrowserActivity extends Activity implements MusicUtils.Defs {
Marco Nelissenf33a5752010-01-27 15:35:43 -080031 private ServiceToken mToken;
Jack Hef9e434b2017-01-26 16:10:20 -080032 private static final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 42;
Marco Nelissenf33a5752010-01-27 15:35:43 -080033
Jack Heb0fba8b2017-01-26 15:54:38 -080034 public MusicBrowserActivity() {}
The Android Open Source Project792a2202009-03-03 19:32:30 -080035
36 /**
37 * Called when the activity is first created.
38 */
39 @Override
40 public void onCreate(Bundle icicle) {
41 super.onCreate(icicle);
Jack Hef9e434b2017-01-26 16:10:20 -080042 if (checkSelfPermission(permission.READ_EXTERNAL_STORAGE)
43 != PackageManager.PERMISSION_GRANTED) {
44 requestPermissions(new String[] {permission.READ_EXTERNAL_STORAGE},
45 MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
46 return;
47 }
48 initApp();
49 }
50
51 public void initApp() {
Marco Nelissenec0c57a2009-12-12 12:27:11 -080052 int activeTab = MusicUtils.getIntPref(this, "activetab", R.id.artisttab);
Jack Heb0fba8b2017-01-26 15:54:38 -080053 if (activeTab != R.id.artisttab && activeTab != R.id.albumtab && activeTab != R.id.songtab
Marco Nelissenec0c57a2009-12-12 12:27:11 -080054 && activeTab != R.id.playlisttab) {
55 activeTab = R.id.artisttab;
56 }
57 MusicUtils.activateTab(this, activeTab);
Jack Heb0fba8b2017-01-26 15:54:38 -080058
The Android Open Source Project792a2202009-03-03 19:32:30 -080059 String shuf = getIntent().getStringExtra("autoshuffle");
60 if ("true".equals(shuf)) {
Marco Nelissenf33a5752010-01-27 15:35:43 -080061 mToken = MusicUtils.bindToService(this, autoshuffle);
The Android Open Source Project792a2202009-03-03 19:32:30 -080062 }
The Android Open Source Project792a2202009-03-03 19:32:30 -080063 }
64
65 @Override
66 public void onDestroy() {
Marco Nelissenf33a5752010-01-27 15:35:43 -080067 if (mToken != null) {
68 MusicUtils.unbindFromService(mToken);
69 }
The Android Open Source Project792a2202009-03-03 19:32:30 -080070 super.onDestroy();
71 }
72
The Android Open Source Project792a2202009-03-03 19:32:30 -080073 private ServiceConnection autoshuffle = new ServiceConnection() {
74 public void onServiceConnected(ComponentName classname, IBinder obj) {
75 // we need to be able to bind again, so unbind
Dave Sparks14aeef22009-03-24 21:23:42 -070076 try {
77 unbindService(this);
78 } catch (IllegalArgumentException e) {
79 }
The Android Open Source Project792a2202009-03-03 19:32:30 -080080 IMediaPlaybackService serv = IMediaPlaybackService.Stub.asInterface(obj);
81 if (serv != null) {
82 try {
83 serv.setShuffleMode(MediaPlaybackService.SHUFFLE_AUTO);
The Android Open Source Project792a2202009-03-03 19:32:30 -080084 } catch (RemoteException ex) {
85 }
86 }
87 }
88
Jack Heb0fba8b2017-01-26 15:54:38 -080089 public void onServiceDisconnected(ComponentName classname) {}
The Android Open Source Project792a2202009-03-03 19:32:30 -080090 };
Jack Hef9e434b2017-01-26 16:10:20 -080091
92 @Override
93 public void onRequestPermissionsResult(
94 int requestCode, String permissions[], int[] grantResults) {
95 switch (requestCode) {
96 case MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE: {
97 if (grantResults.length == 0
98 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
99 finish();
100 return;
101 }
102 initApp();
103 }
104 }
105 }
The Android Open Source Project792a2202009-03-03 19:32:30 -0800106}