亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? trackbrowseractivity.java

?? Android平臺(tái)上的media player, iPhone風(fēng)格
?? JAVA
?? 第 1 頁 / 共 3 頁
字號(hào):
/* * Copyright (C) 2007 The Android Open Source 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. */package com.android.imusic;import android.app.ListActivity;import android.content.*;import android.database.AbstractCursor;import android.database.CharArrayBuffer;import android.database.Cursor;import android.media.AudioManager;import android.media.MediaFile;import android.net.Uri;import android.os.Bundle;import android.os.Debug;import android.os.RemoteException;import android.os.Handler;import android.os.Message;import android.provider.MediaStore;import android.provider.MediaStore.Audio.Playlists;import android.util.Log;import android.view.ContextMenu;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.ContextMenu.ContextMenuInfo;import android.widget.AdapterView.AdapterContextMenuInfo;import android.widget.FrameLayout;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.TextView;import android.widget.Toast;import java.text.Collator;import java.util.Arrays;import java.util.Map;public class TrackBrowserActivity extends ListActivity        implements View.OnCreateContextMenuListener, MusicUtils.Defs{    private final int Q_SELECTED = CHILD_MENU_BASE;    private final int Q_ALL = CHILD_MENU_BASE + 1;    private final int SAVE_AS_PLAYLIST = CHILD_MENU_BASE + 2;    private final int PLAY_ALL = CHILD_MENU_BASE + 3;    private final int CLEAR_PLAYLIST = CHILD_MENU_BASE + 4;    private final int REMOVE = CHILD_MENU_BASE + 5;    private final int PLAY_NOW = 0;    private final int ADD_TO_QUEUE = 1;    private final int PLAY_NEXT = 2;    private final int JUMP_TO = 3;    private final int CLEAR_HISTORY = 4;    private final int CLEAR_ALL = 5;    private static final String LOGTAG = "TrackBrowser";    private String[] mCursorCols;    private String[] mPlaylistMemberCols;    private boolean mDeletedOneRow = false;    private boolean mEditMode = false;    private String mCurrentTrackName;    public TrackBrowserActivity()    {    }    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle icicle)    {        super.onCreate(icicle);        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);        setVolumeControlStream(AudioManager.STREAM_MUSIC);        if (icicle != null) {            mSelectedId = icicle.getLong("selectedtrack");            mAlbumId = icicle.getString("album");            mArtistId = icicle.getString("artist");            mPlaylist = icicle.getString("playlist");            mGenre = icicle.getString("genre");            mEditMode = icicle.getBoolean("editmode", false);        } else {            mAlbumId = getIntent().getStringExtra("album");            // If we have an album, show everything on the album, not just stuff            // by a particular artist.            Intent intent = getIntent();            mArtistId = intent.getStringExtra("artist");            mPlaylist = intent.getStringExtra("playlist");            mGenre = intent.getStringExtra("genre");            mEditMode = intent.getAction().equals(Intent.ACTION_EDIT);        }        mCursorCols = new String[] {                MediaStore.Audio.Media._ID,                MediaStore.Audio.Media.TITLE,                MediaStore.Audio.Media.TITLE_KEY,                MediaStore.Audio.Media.DATA,                MediaStore.Audio.Media.ALBUM,                MediaStore.Audio.Media.ARTIST,                MediaStore.Audio.Media.ARTIST_ID,                MediaStore.Audio.Media.DURATION        };        mPlaylistMemberCols = new String[] {                MediaStore.Audio.Playlists.Members._ID,                MediaStore.Audio.Media.TITLE,                MediaStore.Audio.Media.TITLE_KEY,                MediaStore.Audio.Media.DATA,                MediaStore.Audio.Media.ALBUM,                MediaStore.Audio.Media.ARTIST,                MediaStore.Audio.Media.ARTIST_ID,                MediaStore.Audio.Media.DURATION,                MediaStore.Audio.Playlists.Members.PLAY_ORDER,                MediaStore.Audio.Playlists.Members.AUDIO_ID        };        MusicUtils.bindToService(this);        IntentFilter f = new IntentFilter();        f.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);        f.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);        f.addAction(Intent.ACTION_MEDIA_UNMOUNTED);        f.addDataScheme("file");        registerReceiver(mScanListener, f);        init();        //Debug.startMethodTracing();    }    @Override    public void onDestroy() {        //Debug.stopMethodTracing();        MusicUtils.unbindFromService(this);        try {            if ("nowplaying".equals(mPlaylist)) {                unregisterReceiver(mNowPlayingListener);            } else {                unregisterReceiver(mTrackListListener);            }        } catch (IllegalArgumentException ex) {            // we end up here in case we never registered the listeners        }        if (mTrackCursor != null) {            mTrackCursor.close();        }        unregisterReceiver(mScanListener);        super.onDestroy();   }        @Override    public void onResume() {        super.onResume();        if (mTrackCursor != null) {            getListView().invalidateViews();        }        MusicUtils.setSpinnerState(this);    }    @Override    public void onPause() {        mReScanHandler.removeCallbacksAndMessages(null);        super.onPause();    }    private BroadcastReceiver mScanListener = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            MusicUtils.setSpinnerState(TrackBrowserActivity.this);            mReScanHandler.sendEmptyMessage(0);        }    };        private Handler mReScanHandler = new Handler() {        public void handleMessage(Message msg) {            init();            if (mTrackCursor == null) {                sendEmptyMessageDelayed(0, 1000);            }        }    };        public void onSaveInstanceState(Bundle outcicle) {        // need to store the selected item so we don't lose it in case        // of an orientation switch. Otherwise we could lose it while        // in the middle of specifying a playlist to add the item to.        outcicle.putLong("selectedtrack", mSelectedId);        outcicle.putString("artist", mArtistId);        outcicle.putString("album", mAlbumId);        outcicle.putString("playlist", mPlaylist);        outcicle.putString("genre", mGenre);        outcicle.putBoolean("editmode", mEditMode);        super.onSaveInstanceState(outcicle);    }        public void init() {        mTrackCursor = getTrackCursor(null);        setContentView(R.layout.media_picker_activity);        mTrackList = (ListView) findViewById(android.R.id.list);        if (mEditMode) {            //((TouchInterceptor) mTrackList).setDragListener(mDragListener);            ((TouchInterceptor) mTrackList).setDropListener(mDropListener);            ((TouchInterceptor) mTrackList).setRemoveListener(mRemoveListener);        }        if (mTrackCursor == null) {            MusicUtils.displayDatabaseError(this);            return;        }        int numresults = mTrackCursor.getCount();        if (numresults > 0) {            mTrackCursor.moveToFirst();            CharSequence fancyName = null;            if (mAlbumId != null) {                fancyName = mTrackCursor.getString(mTrackCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));                // For compilation albums show only the album title,                // but for regular albums show "artist - album".                // To determine whether something is a compilation                // album, do a query for the artist + album of the                // first item, and see if it returns the same number                // of results as the album query.                String where = MediaStore.Audio.Media.ALBUM_ID + "='" + mAlbumId +                        "' AND " + MediaStore.Audio.Media.ARTIST_ID + "='" +                         mTrackCursor.getString(mTrackCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST_ID)) + "'";                Cursor cursor = MusicUtils.query(this, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,                    new String[] {MediaStore.Audio.Media.ALBUM}, where, null, null);                if (cursor != null) {                    if (cursor.getCount() != numresults) {                        // compilation album                        fancyName = mTrackCursor.getString(mTrackCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));                    }                        cursor.deactivate();                }            } else if (mPlaylist != null) {                if (mPlaylist.equals("nowplaying")) {                    if (MusicUtils.getCurrentShuffleMode() == MediaPlaybackService.SHUFFLE_AUTO) {                        fancyName = getText(R.string.partyshuffle_title);                    } else {                        fancyName = getText(R.string.nowplaying_title);                    }                } else {                    String [] cols = new String [] {                    MediaStore.Audio.Playlists.NAME                    };                    Cursor cursor = MusicUtils.query(this,                            ContentUris.withAppendedId(Playlists.EXTERNAL_CONTENT_URI, Long.valueOf(mPlaylist)),                            cols, null, null, null);                    if (cursor != null) {                        if (cursor.getCount() != 0) {                            cursor.moveToFirst();                            fancyName = cursor.getString(0);                        }                        cursor.deactivate();                    }                }            } else if (mGenre != null) {                String [] cols = new String [] {                MediaStore.Audio.Genres.NAME                };                Cursor cursor = MusicUtils.query(this,                        ContentUris.withAppendedId(MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI, Long.valueOf(mGenre)),                        cols, null, null, null);                if (cursor != null) {                    if (cursor.getCount() != 0) {                        cursor.moveToFirst();                        fancyName = cursor.getString(0);                    }                    cursor.deactivate();                }            }            if (fancyName != null) {                setTitle(fancyName);            } else {                setTitle(R.string.tracks_title);            }        } else {            setTitle(R.string.no_tracks_title);        }        TrackListAdapter adapter = new TrackListAdapter(                this,                mEditMode ? R.layout.edit_track_list_item : R.layout.track_list_item2,                mTrackCursor,                new String[] {},                new int[] {},                "nowplaying".equals(mPlaylist));        setListAdapter(adapter);        ListView lv = getListView();        lv.setOnCreateContextMenuListener(this);        lv.setCacheColorHint(0);        if (!mEditMode) {            lv.setTextFilterEnabled(true);        }        // When showing the queue, position the selection on the currently playing track        // Otherwise, position the selection on the first matching artist, if any        IntentFilter f = new IntentFilter();        f.addAction(MediaPlaybackService.META_CHANGED);        f.addAction(MediaPlaybackService.QUEUE_CHANGED);        if ("nowplaying".equals(mPlaylist)) {            try {                int cur = MusicUtils.sService.getQueuePosition();                setSelection(cur);                registerReceiver(mNowPlayingListener, new IntentFilter(f));                mNowPlayingListener.onReceive(this, new Intent(MediaPlaybackService.META_CHANGED));            } catch (RemoteException ex) {            }        } else {            String key = getIntent().getStringExtra("artist");            if (key != null) {                int keyidx = mTrackCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST_ID);                mTrackCursor.moveToFirst();                while (! mTrackCursor.isAfterLast()) {                    String artist = mTrackCursor.getString(keyidx);                    if (artist.equals(key)) {                        setSelection(mTrackCursor.getPosition());                        break;                    }                    mTrackCursor.moveToNext();                }            }            registerReceiver(mTrackListListener, new IntentFilter(f));            mTrackListListener.onReceive(this, new Intent(MediaPlaybackService.META_CHANGED));        }    }        private TouchInterceptor.DragListener mDragListener =        new TouchInterceptor.DragListener() {        public void drag(int from, int to) {            if (mTrackCursor instanceof NowPlayingCursor) {                NowPlayingCursor c = (NowPlayingCursor) mTrackCursor;                c.moveItem(from, to);                ((TrackListAdapter)getListAdapter()).notifyDataSetChanged();                getListView().invalidateViews();                mDeletedOneRow = true;            }        }    };    private TouchInterceptor.DropListener mDropListener =        new TouchInterceptor.DropListener() {        public void drop(int from, int to) {            if (mTrackCursor instanceof NowPlayingCursor) {                // update the currently playing list                NowPlayingCursor c = (NowPlayingCursor) mTrackCursor;                c.moveItem(from, to);                ((TrackListAdapter)getListAdapter()).notifyDataSetChanged();                getListView().invalidateViews();                mDeletedOneRow = true;            } else {                // update a saved playlist                int colidx = mTrackCursor.getColumnIndex(MediaStore.Audio.Playlists.Members.PLAY_ORDER);                if (from < to) {                    // move the item to somewhere later in the list                    mTrackCursor.moveToPosition(to);                    int toidx = mTrackCursor.getInt(colidx);                    mTrackCursor.moveToPosition(from);//                    mTrackCursor.updateInt(colidx, toidx);                    for (int i = from + 1; i <= to; i++) {                        mTrackCursor.moveToPosition(i);//                        mTrackCursor.updateInt(colidx, i - 1);                    }//                    mTrackCursor.commitUpdates();                } else if (from > to) {                    // move the item to somewhere earlier in the list

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产色综合久久ai换脸| 欧美大片在线观看一区二区| 石原莉奈一区二区三区在线观看| 国产午夜亚洲精品羞羞网站| 精品视频一区三区九区| 成+人+亚洲+综合天堂| 美女视频黄a大片欧美| 一区二区日韩电影| 国产午夜亚洲精品理论片色戒| 欧美日韩国产三级| 99精品国产91久久久久久| 韩国av一区二区三区四区| 午夜精彩视频在线观看不卡| 亚洲欧美在线aaa| 国产三级欧美三级日产三级99| 欧美一区二区大片| 欧美三级电影网| 色激情天天射综合网| 成人网在线免费视频| 国产精品中文字幕欧美| 美女视频第一区二区三区免费观看网站| 亚洲专区一二三| 亚洲人成7777| 自拍偷在线精品自拍偷无码专区| 国产精品欧美极品| 欧美极品少妇xxxxⅹ高跟鞋| 久久午夜国产精品| 久久尤物电影视频在线观看| 精品久久人人做人人爱| 日韩网站在线看片你懂的| 91麻豆精品国产91久久久使用方法 | 精品国产露脸精彩对白| 91精品国产综合久久久蜜臀粉嫩 | 一本色道久久综合精品竹菊| av成人老司机| 91免费小视频| 欧洲日韩一区二区三区| 色婷婷综合在线| 在线亚洲高清视频| 欧美性猛交xxxx黑人交| 欧美日韩欧美一区二区| 欧美日韩国产免费| 欧美巨大另类极品videosbest | 精品视频资源站| 欧美片在线播放| 制服丝袜中文字幕一区| 日韩一级高清毛片| 精品国产亚洲一区二区三区在线观看| 日韩一区二区三区三四区视频在线观看 | 久久久噜噜噜久久人人看| 久久亚洲精精品中文字幕早川悠里 | 日韩精品免费视频人成| 日韩国产精品91| 青青草97国产精品免费观看| 国精产品一区一区三区mba桃花| 经典三级在线一区| 丁香婷婷综合网| 欧亚洲嫩模精品一区三区| 欧美一区二区在线视频| 精品国产一区二区精华| 欧美国产一区二区| 亚洲一区二区av电影| 蜜臀久久99精品久久久画质超高清| 久久www免费人成看片高清| 成人自拍视频在线观看| 欧美视频一区在线| 精品国产免费久久| 亚洲人成人一区二区在线观看 | 精品国精品国产| 国产亚洲成年网址在线观看| 一区二区三区在线视频观看58| 天堂精品中文字幕在线| 国产精品99久| 欧美日韩一区小说| 26uuu国产日韩综合| 亚洲美女在线一区| 久久99国产精品久久| 99re这里都是精品| 日韩欧美一区二区三区在线| 国产精品免费丝袜| 午夜久久久久久电影| 国产aⅴ精品一区二区三区色成熟| 日本韩国一区二区三区视频| 精品国产免费久久| 亚洲精品视频观看| 国产精品一区二区x88av| 91黄色免费版| 欧美国产成人在线| 蜜臀久久99精品久久久久久9| eeuss鲁一区二区三区| 日韩一级片网址| 亚洲欧美视频在线观看| 韩日欧美一区二区三区| 欧美专区日韩专区| 国产精品午夜在线观看| 久久av资源网| 欧美日韩高清一区| 综合自拍亚洲综合图不卡区| 久久黄色级2电影| 欧美三级韩国三级日本三斤| 国产精品久久一卡二卡| 精品一区二区免费| 欧美三区免费完整视频在线观看| 中文字幕精品在线不卡| 久久国产生活片100| 欧美军同video69gay| 亚洲精品你懂的| 成人看片黄a免费看在线| 精品剧情v国产在线观看在线| 午夜精品在线视频一区| 91国在线观看| 亚洲欧洲国产日韩| 国产成人精品一区二| 精品奇米国产一区二区三区| 日日骚欧美日韩| 欧美最猛黑人xxxxx猛交| 亚洲婷婷综合色高清在线| 国产成人自拍网| 亚洲精品一区二区在线观看| 欧美aⅴ一区二区三区视频| 欧美探花视频资源| 樱花影视一区二区| 99综合影院在线| 国产欧美一区二区三区网站| 国产精品538一区二区在线| 精品国产污污免费网站入口| 黄色小说综合网站| 日韩精品一区二区三区在线播放| 视频一区欧美精品| 在线播放中文字幕一区| 午夜精品成人在线视频| 欧美久久久久久蜜桃| 日韩av网站免费在线| 日韩一区二区在线免费观看| 日韩中文字幕一区二区三区| 欧美精品久久久久久久多人混战| 亚洲第一在线综合网站| 欧美人与禽zozo性伦| 午夜不卡在线视频| 91精品视频网| 久草精品在线观看| 久久久精品tv| 东方aⅴ免费观看久久av| 欧美激情一区不卡| 91丨porny丨最新| 亚洲一区在线看| 欧美一区二区黄| 国产老妇另类xxxxx| 国产精品久久看| 欧美性大战久久久| 日韩一区欧美二区| 亚洲精品一线二线三线无人区| 国产高清亚洲一区| 综合欧美一区二区三区| 欧美吞精做爰啪啪高潮| 免费看黄色91| 国产视频一区在线观看| 99精品视频在线免费观看| 亚洲高清三级视频| 日韩欧美不卡在线观看视频| 国产丶欧美丶日本不卡视频| 成人免费一区二区三区在线观看| 欧美日韩国产片| 国产一区二区在线视频| 亚洲色图欧洲色图婷婷| 欧美日韩国产一级| 国产高清在线精品| 伊人一区二区三区| 日韩一级片在线观看| av成人免费在线| 奇米四色…亚洲| 日韩一区中文字幕| 日韩视频在线观看一区二区| 成人激情av网| 天涯成人国产亚洲精品一区av| 久久久久国产精品麻豆| 欧美视频中文字幕| 国产精品一区二区视频| 亚洲一区国产视频| 国产日韩欧美综合一区| 欧美视频一区二区三区四区| 国产麻豆视频一区| 亚洲国产aⅴ天堂久久| 国产三区在线成人av| 欧美久久久久久久久中文字幕| 国产成人精品亚洲777人妖| 天堂在线一区二区| 136国产福利精品导航| 精品99999| 欧美精品在线一区二区三区| 99久久久久久| 精油按摩中文字幕久久| 亚洲另类在线一区| 国产日韩精品一区| 日韩一区二区三区免费观看| 欧美伊人久久久久久久久影院 | 日本视频一区二区| 一区二区欧美在线观看| 国产精品午夜在线观看| 精品国产91乱码一区二区三区|