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

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

?? trackbrowseractivity.java

?? Android平臺上的media player, iPhone風(fēng)格
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
                    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();                }            }        }    };        private TouchInterceptor.RemoveListener mRemoveListener =        new TouchInterceptor.RemoveListener() {        public void remove(int which) {            removePlaylistItem(which);        }    };    private void removePlaylistItem(int which) {        View v = mTrackList.getChildAt(which - mTrackList.getFirstVisiblePosition());        try {            if (MusicUtils.sService != null                    && which != MusicUtils.sService.getQueuePosition()) {                mDeletedOneRow = true;            }        } catch (RemoteException e) {            // Service died, so nothing playing.            mDeletedOneRow = true;        }        v.setVisibility(View.GONE);        mTrackList.invalidateViews();        mTrackCursor.moveToPosition(which);//        mTrackCursor.deleteRow();//        mTrackCursor.commitUpdates();        v.setVisibility(View.VISIBLE);        mTrackList.invalidateViews();    }        private BroadcastReceiver mTrackListListener = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            getListView().invalidateViews();        }    };    private BroadcastReceiver mNowPlayingListener = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            if (intent.getAction().equals(MediaPlaybackService.META_CHANGED)) {                getListView().invalidateViews();            } else if (intent.getAction().equals(MediaPlaybackService.QUEUE_CHANGED)) {                if (mDeletedOneRow) {                    // This is the notification for a single row that was                    // deleted previously, which is already reflected in                    // the UI.                    mDeletedOneRow = false;                    return;                }                mTrackCursor.close();                mTrackCursor = new NowPlayingCursor(MusicUtils.sService, mCursorCols);                if (mTrackCursor.getCount() == 0) {                    finish();                    return;                }                ((TrackListAdapter)getListAdapter()).changeCursor(mTrackCursor);                getListView().invalidateViews();            }        }    };        public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfoIn) {        menu.add(0, PLAY_SELECTION, 0, R.string.play_selection);        SubMenu sub = menu.addSubMenu(0, ADD_TO_PLAYLIST, 0, R.string.add_to_playlist);        MusicUtils.makePlaylistMenu(this, sub);        if (mEditMode) {            menu.add(0, REMOVE, 0, R.string.remove_from_playlist);        }        menu.add(0, USE_AS_RINGTONE, 0, R.string.ringtone_menu);        menu.add(0, DELETE_ITEM, 0, R.string.delete_item);        AdapterContextMenuInfo mi = (AdapterContextMenuInfo) menuInfoIn;        mSelectedPosition =  mi.position;        mTrackCursor.moveToPosition(mSelectedPosition);        int id_idx = mTrackCursor.getColumnIndex(MediaStore.Audio.Playlists.Members.AUDIO_ID);        if (id_idx < 0 ) {            mSelectedId = mi.id;        } else {            mSelectedId = mTrackCursor.getInt(id_idx);        }        mCurrentTrackName = mTrackCursor.getString(mTrackCursor.getColumnIndex(MediaStore.Audio.Media.TITLE));        menu.setHeaderTitle(mCurrentTrackName);    }    @Override    public boolean onContextItemSelected(MenuItem item) {        switch (item.getItemId()) {            case PLAY_SELECTION: {                // play the track                int position = mSelectedPosition;                MusicUtils.playAll(this, mTrackCursor, position);                return true;            }            case QUEUE: {                int [] list = new int[] { (int) mSelectedId };                MusicUtils.addToCurrentPlaylist(this, list);                return true;            }            case NEW_PLAYLIST: {                Intent intent = new Intent();                intent.setClass(this, CreatePlaylist.class);                startActivityForResult(intent, NEW_PLAYLIST);                return true;            }            case PLAYLIST_SELECTED: {                int [] list = new int[] { (int) mSelectedId };                int playlist = item.getIntent().getIntExtra("playlist", 0);                MusicUtils.addToPlaylist(this, list, playlist);                return true;            }            case USE_AS_RINGTONE:                // Set the system setting to make this the current ringtone                MusicUtils.setRingtone(this, mSelectedId);                return true;            case DELETE_ITEM: {                int [] list = new int[1];                list[0] = (int) mSelectedId;                Bundle b = new Bundle();                b.putString("description", mCurrentTrackName);                b.putIntArray("items", list);                Intent intent = new Intent();                intent.setClass(this, DeleteItems.class);                intent.putExtras(b);                startActivityForResult(intent, -1);                return true;            }                        case REMOVE:                removePlaylistItem(mSelectedPosition);                return true;        }        return super.onContextItemSelected(item);    }    // In order to use alt-up/down as a shortcut for moving the selected item    // in the list, we need to override dispatchKeyEvent, not onKeyDown.    // (onKeyDown never sees these events, since they are handled by the list)    @Override    public boolean dispatchKeyEvent(KeyEvent event) {        if (mPlaylist != null && event.getMetaState() != 0 /* && event.isDown() */) {            switch (event.getKeyCode()) {                case KeyEvent.KEYCODE_DPAD_UP:                    moveItem(true);                    return true;                case KeyEvent.KEYCODE_DPAD_DOWN:                    moveItem(false);                    return true;                case KeyEvent.KEYCODE_DEL:                    removeItem();                    return true;            }        }        return super.dispatchKeyEvent(event);    }    private void removeItem() {        int curcount = mTrackCursor.getCount();        int curpos = mTrackList.getSelectedItemPosition();        if (curcount == 0 || curpos < 0) {            return;        }                if ("nowplaying".equals(mPlaylist)) {            // remove track from queue            // Work around bug 902971. To get quick visual feedback            // of the deletion of the item, hide the selected view.            try {                if (curpos != MusicUtils.sService.getQueuePosition()) {                    mDeletedOneRow = true;                }            } catch (RemoteException ex) {            }            View v = mTrackList.getSelectedView();            v.setVisibility(View.GONE);            mTrackList.invalidateViews();            mTrackCursor.moveToPosition(curpos);//            mTrackCursor.deleteRow();//            mTrackCursor.commitUpdates();            v.setVisibility(View.VISIBLE);            mTrackList.invalidateViews();        } else {            // remove track from playlist            mTrackCursor.moveToPosition(curpos);//            mTrackCursor.deleteRow();//            mTrackCursor.commitUpdates();            curcount--;            if (curcount == 0) {                finish();            } else {                mTrackList.setSelection(curpos < curcount ? curpos : curcount);            }        }    }        private void moveItem(boolean up) {        int curcount = mTrackCursor.getCount();         int curpos = mTrackList.getSelectedItemPosition();        if ( (up && curpos < 1) || (!up  && curpos >= curcount - 1)) {            return;        }        if (mTrackCursor instanceof NowPlayingCursor) {            NowPlayingCursor c = (NowPlayingCursor) mTrackCursor;            c.moveItem(curpos, up ? curpos - 1 : curpos + 1);            ((TrackListAdapter)getListAdapter()).notifyDataSetChanged();            getListView().invalidateViews();            mDeletedOneRow = true;            if (up) {                mTrackList.setSelection(curpos - 1);            } else {                mTrackList.setSelection(curpos + 1);            }        } else {            int colidx = mTrackCursor.getColumnIndex(MediaStore.Audio.Playlists.Members.PLAY_ORDER);            mTrackCursor.moveToPosition(curpos);            int currentplayidx = mTrackCursor.getInt(colidx);            if (up) {//                    mTrackCursor.updateInt(colidx, currentplayidx - 1);                    mTrackCursor.moveToPrevious();            } else {//                    mTrackCursor.updateInt(colidx, currentplayidx + 1);                    mTrackCursor.moveToNext();            }//            mTrackCursor.updateInt(colidx, currentplayidx);//            mTrackCursor.commitUpdates();        }    }        @Override    protected void onListItemClick(ListView l, View v, int position, long id)    {        if (mTrackCursor.getCount() == 0) {            return;        }        MusicUtils.playAll(this, mTrackCursor, position);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        /* This activity is used for a number of different browsing modes, and the menu can         * be different for each of them:         * - all tracks, optionally restricted to an album, artist or playlist         * - the list of currently playing songs         */        super.onCreateOptionsMenu(menu);        if (mPlaylist == null) {            menu.add(0, PLAY_ALL, 0, R.string.play_all).setIcon(R.drawable.ic_menu_play_clip);        }        menu.add(0, GOTO_START, 0, R.string.goto_start).setIcon(R.drawable.ic_menu_music_library);        menu.add(0, GOTO_PLAYBACK, 0, R.string.goto_playback).setIcon(R.drawable.ic_menu_playback)                .setVisible(MusicUtils.isMusicLoaded());        menu.add(0, SHUFFLE_ALL, 0, R.string.shuffle_all).setIcon(R.drawable.ic_menu_shuffle);        if (mPlaylist != null) {            menu.add(0, SAVE_AS_PLAYLIST, 0, R.string.save_as_playlist).setIcon(R.drawable.ic_menu_save);            if (mPlaylist.equals("nowplaying")) {                menu.add(0, CLEAR_PLAYLIST, 0, R.string.clear_playlist).setIcon(R.drawable.ic_menu_clear_playlist);            }        }        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        Intent intent;        Cursor cursor;        switch (item.getItemId()) {            case PLAY_ALL: {                MusicUtils.playAll(this, mTrackCursor);                return true;            }            case GOTO_START:                intent = new Intent();                intent.setClass(this, MusicBrowserActivity.class);                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                startActivity(intent);                return true;            case GOTO_PLAYBACK:                intent = new Intent("com.android.imusic.playing");                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                startActivity(intent);                return true;                            case SHUFFLE_ALL:                // Should 'shuffle all' shuffle ALL, or only the tracks shown?                cursor = MusicUtils.query(this, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,                        new String [] { MediaStore.Audio.Media._ID},                         MediaStore.Audio.Media.IS_MUSIC + "=1", null,                        MediaStore.Audio.Media.DEFAULT_SORT_ORDER);                if (cursor != null) {                    MusicUtils.shuffleAll(this, cursor);                    cursor.close();                }                return true;                            case SAVE_AS_PLAYLIST:                intent = new Intent();                intent.setClass(this, CreatePlaylist.class);                startActivityForResult(intent, SAVE_AS_PLAYLIST);                return true;                            case CLEAR_PLAYLIST:                // We only clear the current playlist                MusicUtils.clearQueue();                return true;        }        return super.onOptionsItemSelected(item);    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {        switch (requestCode) {            case SCAN_DONE:                if (resultCode == RESULT_CANCELED) {                    finish();                } else {                    init();                }                break;                            case NEW_PLAYLIST:                if (resultCode == RESULT_OK) {                    Uri uri = Uri.parse(intent.getAction());                    if (uri != null) {                        int [] list = new int[] { (int) mSelectedId };                        MusicUtils.addToPlaylist(this, list, Integer.valueOf(uri.getLastPathSegment()));                    }                }                break;            case SAVE_AS_PLAYLIST:                if (resultCode == RESULT_OK) {                    Uri uri = Uri.parse(intent.getAction());                    if (uri != null) {                        int [] list = MusicUtils.getSongListForCursor(mTrackCursor);                        int plid = Integer.parseInt(uri.getLastPathSegment());                        MusicUtils.addToPlaylist(this, list, plid);                    }                }                break;        }    }    private Cursor getTrackCursor(String filterstring) {        Cursor ret = null;        mSortOrder = MediaStore.Audio.Media.TITLE_KEY;        StringBuilder where = new StringBuilder();        where.append(MediaStore.Audio.Media.TITLE + " != ''");                // Add in the filtering constraints        String [] keywords = null;        if (filterstring != null) {            String [] searchWords = filterstring.split(" ");            keywords = new String[searchWords.length];            Collator col = Collator.getInstance();            col.setStrength(Collator.PRIMARY);            for (int i = 0; i < searchWords.length; i++) {                keywords[i] = '%' + MediaStore.Audio.keyFor(searchWords[i]) + '%';            }            for (int i = 0; i < searchWords.length; i++) {                where.append(" AND ");                where.append(MediaStore.Audio.Media.ARTIST_KEY + "||");                where.append(MediaStore.Audio.Media.ALBUM_KEY + "||");                where.append(MediaStore.Audio.Media.TITLE_KEY + " LIKE ?");

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄色成人免费在线| 亚洲国产精品视频| 蜜臀精品久久久久久蜜臀| 播五月开心婷婷综合| 一本到三区不卡视频| 国产日韩欧美一区二区三区综合| 国产女人水真多18毛片18精品视频| 午夜精品123| 成人晚上爱看视频| 色婷婷精品久久二区二区蜜臂av | 韩国一区二区三区| 91精品国产综合久久福利 | 欧美精品三级日韩久久| 国产网站一区二区三区| 亚洲国产欧美日韩另类综合| 不卡一区二区在线| 91精品欧美久久久久久动漫 | www.亚洲国产| 欧美成人精品二区三区99精品| 国产精品国产自产拍高清av王其| 激情六月婷婷久久| 色欧美日韩亚洲| 欧美一区二区三区视频| 天堂蜜桃91精品| 日韩国产欧美在线播放| 欧美日韩一区二区三区在线看| 国产亚洲一区二区三区在线观看| 蜜臀久久99精品久久久久宅男| 欧美人与z0zoxxxx视频| 亚洲国产精品一区二区久久 | 欧美不卡123| 麻豆91在线观看| 欧美人与z0zoxxxx视频| 中文字幕乱码亚洲精品一区 | 久久日一线二线三线suv| 一区二区三区资源| 日韩电影在线免费观看| 欧美妇女性影城| 日本一区二区高清| 成人精品视频网站| 久久众筹精品私拍模特| 国产麻豆视频一区二区| 精品伦理精品一区| 亚洲一区二区精品视频| 欧美日本在线看| 亚洲激情六月丁香| 欧美日韩一区二区在线观看视频 | 色综合夜色一区| 久久精品人人做| 成人一区二区三区| 亚洲色图欧美在线| 欧美性xxxxxx少妇| 奇米一区二区三区av| 精品国产污网站| 成人一区二区三区视频在线观看| 国产精品的网站| 在线视频国内一区二区| 亚洲gay无套男同| 欧美精品在线一区二区| 国产精品人妖ts系列视频| 日韩福利电影在线| 欧美日韩国产精品自在自线| 亚洲乱码国产乱码精品精可以看 | 日韩精品中文字幕在线不卡尤物 | 国产精品丝袜一区| 欧美一级日韩不卡播放免费| 欧美电影免费观看完整版| 久久99久久精品| 精品少妇一区二区三区视频免付费| 樱桃国产成人精品视频| 欧美一区二区视频网站| 韩国成人在线视频| 2020国产精品久久精品美国| 99久精品国产| 国产精品久久久99| 欧美精品一卡二卡| 日韩av中文字幕一区二区三区| 在线播放亚洲一区| 国产一区在线看| 国产精品日韩精品欧美在线| 福利一区二区在线| 亚洲视频 欧洲视频| 欧美日韩的一区二区| 国产呦精品一区二区三区网站| 国产精品第一页第二页第三页| 欧美视频在线播放| 久久99国产精品久久| 久久免费看少妇高潮| 天天综合网 天天综合色| 国产拍揄自揄精品视频麻豆| 欧美日韩综合一区| 国产成人小视频| 日韩激情视频在线观看| 国产精品久久久久久久久久免费看| 在线播放国产精品二区一二区四区| 国产美女精品在线| 亚洲一区在线观看免费| 久久久久国产一区二区三区四区| 91蜜桃在线免费视频| 老司机精品视频导航| 一区二区三区四区在线| 精品国产三级电影在线观看| 欧美少妇性性性| 成人黄页在线观看| 美国三级日本三级久久99| 一区二区三区免费在线观看| 国产日韩欧美精品一区| 欧美丰满一区二区免费视频| gogogo免费视频观看亚洲一| 麻豆91免费看| 亚洲福利国产精品| 国产精品久久久久久久久快鸭| 精品国产一区二区三区久久影院 | 欧美日韩午夜精品| 成人av电影免费观看| 韩国一区二区在线观看| 亚洲成av人片观看| 亚洲乱码日产精品bd| 中文字幕成人网| 精品免费视频.| 制服.丝袜.亚洲.中文.综合| 91麻豆自制传媒国产之光| 国产精品一区二区三区网站| 奇米一区二区三区| 亚洲v中文字幕| 亚洲精品一二三区| 中文字幕一区日韩精品欧美| 久久免费视频色| 日韩欧美电影一区| 制服丝袜日韩国产| 欧美日韩在线免费视频| 色欲综合视频天天天| 99综合电影在线视频| 丰满岳乱妇一区二区三区| 国内精品第一页| 另类欧美日韩国产在线| 天天综合网天天综合色| 午夜精品一区二区三区电影天堂| 亚洲精品视频免费看| 亚洲婷婷综合色高清在线| 国产精品乱人伦| 中文字幕高清一区| 国产精品入口麻豆九色| 国产精品毛片大码女人| 国产日韩欧美综合在线| 久久伊人蜜桃av一区二区| 精品国产91洋老外米糕| 精品精品国产高清a毛片牛牛| 在线播放91灌醉迷j高跟美女 | 国产99久久久国产精品潘金网站| 国产麻豆精品久久一二三| 久久99国产精品免费网站| 激情六月婷婷久久| 国产一区二区按摩在线观看| 国产乱码精品1区2区3区| 国产综合色在线| 国产精品亚洲午夜一区二区三区| 紧缚捆绑精品一区二区| 韩国精品免费视频| 亚洲女同女同女同女同女同69| 自拍偷拍国产亚洲| 一区二区三区欧美日| 亚洲一二三四区不卡| 天堂精品中文字幕在线| 日本不卡免费在线视频| 奇米在线7777在线精品| 国内不卡的二区三区中文字幕 | 麻豆91精品视频| 黄色日韩网站视频| 高清不卡在线观看| www.亚洲色图.com| 色噜噜久久综合| 26uuu亚洲综合色| 秋霞av亚洲一区二区三| 免费成人av在线| 精品亚洲免费视频| 国产大陆a不卡| 99riav久久精品riav| 色吊一区二区三区| 717成人午夜免费福利电影| 欧美一区二区日韩一区二区| 精品少妇一区二区三区在线视频| 久久精品视频一区二区三区| 欧美高清一级片在线观看| 一区二区三区中文在线观看| 天堂成人国产精品一区| 狠狠色综合色综合网络| 风间由美一区二区三区在线观看 | 欧美精品丝袜中出| 久久久噜噜噜久噜久久综合| 中文字幕在线观看不卡| 亚洲小说春色综合另类电影| 免费在线成人网| 丁香啪啪综合成人亚洲小说| 日本电影亚洲天堂一区| 欧美大黄免费观看| 日韩一区在线免费观看| 日本aⅴ亚洲精品中文乱码| 国产成人午夜片在线观看高清观看| 一本高清dvd不卡在线观看|