Search in sources :

Example 1 with UpdateMgr

use of org.easydarwin.update.UpdateMgr in project EasyPlayer-RTMP-Android by EasyDSS.

the class PlaylistActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mBinding = DataBindingUtil.setContentView(this, R.layout.content_playlist);
    // setContentView(R.layout.content_playlist);
    setSupportActionBar(mBinding.toolbar);
    mCursor = TheApp.sDB.query(VideoSource.TABLE_NAME, null, null, null, null, null, null);
    if (!mCursor.moveToFirst()) {
        ContentValues cv = new ContentValues();
        cv.put(VideoSource.URL, "rtmp://live.hkstv.hk.lxdns.com/live/hks");
        TheApp.sDB.insert(VideoSource.TABLE_NAME, null, cv);
        mCursor.close();
        mCursor = TheApp.sDB.query(VideoSource.TABLE_NAME, null, null, null, null, null, null);
    }
    mRecyclerView = mBinding.recycler;
    mRecyclerView.setHasFixedSize(true);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.setAdapter(new RecyclerView.Adapter() {

        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            return new PlayListViewHolder((VideoSourceItemBinding) DataBindingUtil.inflate(getLayoutInflater(), R.layout.video_source_item, parent, false));
        }

        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
            PlayListViewHolder plvh = (PlayListViewHolder) holder;
            mCursor.moveToPosition(position);
            String name = mCursor.getString(mCursor.getColumnIndex(VideoSource.NAME));
            String url = mCursor.getString(mCursor.getColumnIndex(VideoSource.URL));
            if (!TextUtils.isEmpty(name)) {
                plvh.mTextView.setText(name);
            } else {
                plvh.mTextView.setText(url);
            }
            File file = url2localPosterFile(PlaylistActivity.this, url);
            Glide.with(PlaylistActivity.this).load(file).signature(new StringSignature(UUID.randomUUID().toString())).placeholder(R.drawable.placeholder).centerCrop().into(plvh.mImageView);
            int audienceNumber = mCursor.getInt(mCursor.getColumnIndex(VideoSource.AUDIENCE_NUMBER));
            if (audienceNumber > 0) {
                plvh.mAudienceNumber.setText(String.format("当前观看人数:%d", audienceNumber));
                plvh.mAudienceNumber.setVisibility(View.VISIBLE);
            } else {
                plvh.mAudienceNumber.setVisibility(View.GONE);
            }
        }

        @Override
        public int getItemCount() {
            return mCursor.getCount();
        }
    });
    if (savedInstanceState == null) {
        startActivity(new Intent(this, SplashActivity.class));
    }
    if (!isPro()) {
        mBinding.pullToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

            @Override
            public void onRefresh() {
                doLoadData(true);
            }
        });
        doLoadData(false);
        mBinding.toolbarSetting.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                startActivity(new Intent(PlaylistActivity.this, SettingsActivity.class));
            }
        });
    } else {
        mBinding.toolbarSetting.setVisibility(View.GONE);
        mBinding.pullToRefresh.setEnabled(false);
    }
    mBinding.toolbarAdd.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            final EditText edit = new EditText(PlaylistActivity.this);
            edit.setHint(isPro() ? "RTSP/RTMP/HTTP/HLS地址" : "RTMP地址(格式为RTMP://...)");
            final int hori = (int) getResources().getDimension(R.dimen.activity_horizontal_margin);
            final int verti = (int) getResources().getDimension(R.dimen.activity_vertical_margin);
            edit.setPadding(hori, verti, hori, verti);
            // edit.setFilters(new InputFilter[]{new InputFilter() {
            // @Override
            // public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            // if (end-start == 0){
            // return null;
            // }
            // Log.d(TAG, String.format("source:%s,start:%d,end:%d;dest:%s,dstart:%d,dend:%d", source, start,end, dest, dstart,dend));
            // char[] chs = new char[dest.length()-(dend - dstart) + end-start];
            // int i =0;
            // int idx = 0;
            // for (;i<dstart;i++){
            // chs[idx++] = dest.charAt(i);
            // }
            // 
            // for (i = start;i<end;i++){
            // chs[idx++] = source.charAt(i);
            // }
            // for (i=dend;i<dest.length();i++){
            // chs[idx++] = dest.charAt(i);
            // }
            // 
            // String dst = new String(chs);
            // dst = dst.toLowerCase();
            // if ("rtsp://".indexOf(dst) == 0){
            // return null;
            // }else if (dst.indexOf("rtsp://") == 0){
            // return null;
            // }else{
            // return "";
            // }
            // }
            // }});
            final AlertDialog dlg = new AlertDialog.Builder(PlaylistActivity.this).setView(edit).setTitle("请输入播放地址").setPositiveButton("确定", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    String mRTSPUrl = String.valueOf(edit.getText());
                    if (TextUtils.isEmpty(mRTSPUrl)) {
                        return;
                    }
                    // if (!isPro()){
                    // if (mRTSPUrl.toLowerCase().indexOf("rtsp://")!=0){
                    // Toast.makeText(PlaylistActivity.this,"不是合法的RTSP地址,请重新添加.",Toast.LENGTH_SHORT).show();
                    // return;
                    // }
                    // }else{
                    // //                            if (mRTSPUrl.toLowerCase().indexOf("rtsp://")!=0 && mRTSPUrl.toLowerCase().indexOf("rtmp://")!=0 && mRTSPUrl.toLowerCase().indexOf("http://")!=0 && mRTSPUrl.toLowerCase().indexOf("https://")!=0&& mRTSPUrl.toLowerCase().indexOf("hls://")!=0){
                    // //                                Toast.makeText(PlaylistActivity.this,"不是合法的地址,请重新添加.",Toast.LENGTH_SHORT).show();
                    // //                                return;
                    // //                            }
                    // }
                    ContentValues cv = new ContentValues();
                    cv.put(VideoSource.URL, mRTSPUrl);
                    TheApp.sDB.insert(VideoSource.TABLE_NAME, null, cv);
                    mCursor.close();
                    mCursor = TheApp.sDB.query(VideoSource.TABLE_NAME, null, null, null, null, null, null);
                    mRecyclerView.getAdapter().notifyItemInserted(mCursor.getCount() - 1);
                    showOrHideEmptyView();
                }
            }).setNegativeButton("取消", null).create();
            dlg.setOnShowListener(new DialogInterface.OnShowListener() {

                @Override
                public void onShow(DialogInterface dialogInterface) {
                    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.showSoftInput(edit, InputMethodManager.SHOW_IMPLICIT);
                }
            });
            dlg.show();
        }
    });
    mBinding.toolbarAbout.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(PlaylistActivity.this, AboutActivity.class));
        }
    });
    String url = "http://www.easydarwin.org/versions/easyplayer_rtmp/version.txt";
    update = new UpdateMgr(this);
    update.checkUpdate(url);
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) DialogInterface(android.content.DialogInterface) InputMethodManager(android.view.inputmethod.InputMethodManager) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) SwipeRefreshLayout(android.support.v4.widget.SwipeRefreshLayout) StringSignature(com.bumptech.glide.signature.StringSignature) ContentValues(android.content.ContentValues) EditText(android.widget.EditText) VideoSourceItemBinding(org.esaydarwin.rtsp.player.databinding.VideoSourceItemBinding) ViewGroup(android.view.ViewGroup) Intent(android.content.Intent) UpdateMgr(org.easydarwin.update.UpdateMgr) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) RecyclerView(android.support.v7.widget.RecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) File(java.io.File)

Aggregations

ContentValues (android.content.ContentValues)1 DialogInterface (android.content.DialogInterface)1 Intent (android.content.Intent)1 SwipeRefreshLayout (android.support.v4.widget.SwipeRefreshLayout)1 AlertDialog (android.support.v7.app.AlertDialog)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 RecyclerView (android.support.v7.widget.RecyclerView)1 View (android.view.View)1 ViewGroup (android.view.ViewGroup)1 InputMethodManager (android.view.inputmethod.InputMethodManager)1 EditText (android.widget.EditText)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 StringSignature (com.bumptech.glide.signature.StringSignature)1 File (java.io.File)1 UpdateMgr (org.easydarwin.update.UpdateMgr)1 VideoSourceItemBinding (org.esaydarwin.rtsp.player.databinding.VideoSourceItemBinding)1