package com.ucloud.uvod.example; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.net.ConnectivityManager; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import com.ucloud.ucommon.Utils; import com.ucloud.uvod.UBuild; import com.ucloud.uvod.example.permission.PermissionsActivity; import com.ucloud.uvod.example.permission.PermissionsChecker; import com.umeng.analytics.MobclickAgent; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends Activity implements OnItemClickListener { public static final String KEY_MEDIACODEC = "mediacodec"; public static final String KEY_START_ON_PREPARED = "start-on-prepared"; public static final String KEY_LIVE_STREMAING = "live-streaming"; public static final String KEY_ENABLE_BACKGROUND_PLAY = "enable-background-play"; public static final String KEY_SHOW_DEBUG_INFO = "show-debug-info"; public static final String KEY_URI = "uri"; @BindView(R.id.rg_codec) RadioGroup videoCodecRg; @BindView(R.id.rg_streaming) RadioGroup streamingTypeRg; @BindView(R.id.rg_prepared_start) RadioGroup startOnPreparedRg; @BindView(R.id.edtxt_uri) EditText addressEdtxt; @BindView(R.id.listview) ListView listView; @BindView(R.id.txtv_version) TextView versionTxtv; @BindView(R.id.cb_background_play) CheckBox backgroundPlayCb; @BindView(R.id.cb_show_debug_info) CheckBox showDebugInfoCb; private static final int REQUEST_CODE = 200; private PermissionsChecker permissionsChecker; //for android target version >=23 String[] permissions = new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }; String[] demoDirects; String[] demoNames; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.demo_main); ButterKnife.bind(this); addressEdtxt.clearFocus(); demoNames = getResources().getStringArray(R.array.demoNames); listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, demoNames)); listView.setOnItemClickListener(this); demoDirects = getResources().getStringArray(R.array.demoDirects); versionTxtv.setText(UBuild.NAME + "-" + UBuild.VERSION + " " + getResources().getString(R.string.sdk_address)); permissionsChecker = new PermissionsChecker(this); if (permissionsChecker.lacksPermissions(permissions)) { PermissionsActivity.startActivityForResult(this, REQUEST_CODE, permissions); } } @Override protected void onPause() { super.onPause(); MobclickAgent.onPause(this); } @Override protected void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (!Utils.isNetworkConnected(this)) { Toast.makeText(this, R.string.info1, Toast.LENGTH_SHORT).show(); return; } switch (Utils.getConnectedType(this)) { case ConnectivityManager.TYPE_MOBILE: Toast.makeText(this, R.string.info2, Toast.LENGTH_SHORT).show(); break; case ConnectivityManager.TYPE_ETHERNET: Toast.makeText(this, R.string.info3, Toast.LENGTH_SHORT).show(); break; case ConnectivityManager.TYPE_WIFI: Toast.makeText(this, R.string.info4, Toast.LENGTH_SHORT).show(); break; default: break; } if (demoDirects != null && demoDirects.length > position && !TextUtils.isEmpty(demoDirects[position].trim())) { String uri = addressEdtxt.getText().toString(); if (TextUtils.isEmpty(uri)) { Toast.makeText(this, R.string.info5, Toast.LENGTH_SHORT).show(); return; } Intent intent = new Intent(); intent.putExtra(KEY_LIVE_STREMAING, streamingTypeRg.getCheckedRadioButtonId() == R.id.rb_live_streaming ? 1 : 0); intent.putExtra(KEY_MEDIACODEC, videoCodecRg.getCheckedRadioButtonId() == R.id.rb_mediacodec ? 1 : 0); intent.putExtra(KEY_START_ON_PREPARED, startOnPreparedRg.getCheckedRadioButtonId() == R.id.rb_auto ? 1 : 0); intent.putExtra(KEY_ENABLE_BACKGROUND_PLAY, backgroundPlayCb.isChecked() ? 1 : 0); intent.putExtra(KEY_SHOW_DEBUG_INFO, showDebugInfoCb.isChecked() ? 1 : 0); intent.putExtra(KEY_URI, uri); intent.setAction(demoDirects[position]); startActivity(intent); } } }