package com.aiyou.iptv; import java.util.Collections; import java.util.Comparator; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.Toast; import com.aiyou.BaseActivity; import com.aiyou.R; import com.aiyou.iptv.adapter.ChanelAdapter; import com.aiyou.iptv.bean.Chanel; import com.aiyou.iptv.utils.IptvManager; import com.aiyou.utils.ActivityFunc; import com.aiyou.utils.NetWorkManager; import com.aiyou.utils.SwitchManager; import com.aiyou.utils.NetWorkManager.NetStatus; import external.PullToRefresh.PullToRefreshListView; import external.PullToRefresh.PullToRefreshBase.Mode; import external.otherview.ActivitySplitAnimationUtil; public class IptvListActivity extends BaseActivity implements OnItemClickListener { private ChanelAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (SwitchManager.getInstance(getBaseContext()).isNightModeEnabled()) { // 夜间模式 this.setTheme(R.style.ThemeNight); } else { // 日间模式 this.setTheme(R.style.ThemeDay); } setContentView(R.layout.activity_iptv_list); if (ActivitySplitAnimationUtil.canPlay() && Build.VERSION.SDK_INT >= 14) { // 中心打开动画 ActivitySplitAnimationUtil.prepareAnimation(this); ActivitySplitAnimationUtil.animate(this, 1000); } if (NetWorkManager.getInstance(getBaseContext()).getNetworkType() != NetStatus.NETTYPE_WIFI) { Toast.makeText(getBaseContext(), "请在wifi环境下观看", Toast.LENGTH_SHORT).show(); } init(); } @SuppressWarnings("deprecation") private void init() { PullToRefreshListView mPTRLV = (PullToRefreshListView) findViewById(R.id.ptrlv); mPTRLV.setShowIndicator(false); mPTRLV.setPullLabel("", Mode.BOTH); mPTRLV.setRefreshingLabel("", Mode.BOTH); mPTRLV.setReleaseLabel("", Mode.BOTH); mPTRLV.setLoadingDrawable(null, Mode.BOTH); ListView mListView = mPTRLV.getRefreshableView(); Collections.sort(IptvManager.mChanelList, new Comparator<Chanel>() { @Override public int compare(Chanel c1, Chanel c2) { if (c1.frequency > c2.frequency) { return -1; } else if (c1.frequency < c2.frequency) { return 1; } else { return 0; } } }); mAdapter = new ChanelAdapter(getBaseContext(), IptvManager.mChanelList); mListView.setAdapter(mAdapter); mListView.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Chanel chanel = IptvManager.mChanelList.get(position - 1); chanel.frequency++; IptvManager.getInstance(getBaseContext()).saveChanelFrequency(chanel); Intent intent = new Intent(IptvListActivity.this, IptvViewBufferActivity.class); intent.putExtra(IptvViewBufferActivity.KEY_CHANEL, chanel); ActivityFunc.startActivity(IptvListActivity.this, intent); } public void selfFinish(View view) { if (Build.VERSION.SDK_INT >= 14) { ActivitySplitAnimationUtil.finish(this); } else { scrollToFinishActivity(); } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 按下键盘上返回按钮 if (keyCode == KeyEvent.KEYCODE_BACK) { selfFinish(null); return true; } return super.onKeyDown(keyCode, event); } @Override protected void onResume() { super.onResume(); mAdapter.notifyDataSetChanged(); } @Override protected void onDestroy() { super.onDestroy(); ActivitySplitAnimationUtil.cancel(); System.gc(); } }