package com.talent.allshare;
import java.util.Timer;
import java.util.TimerTask;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.AlertDialog;
import android.app.TabActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.net.DhcpInfo;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.text.format.Formatter;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabWidget;
import android.widget.TextView;
import com.talent.allshare.local.LocalActivity;
import com.talent.allshare.more.MoreActivity;
import com.talent.allshare.server.ShareActivity;
import com.wireme.activity.Wifi_Setting;
import com.youplayer.player.R;
//import android.view.View.OnClickListener;
import com.youplayer.player.YouApplication;
@TargetApi(16)
@SuppressLint({ "ResourceAsColor", "NewApi", "NewApi" }) public class MainTabActivity extends TabActivity implements OnTabChangeListener ,android.view.View.OnClickListener
{
static private TabHost mTabHost;
static private Context mContext;
private boolean mInitFlag = false;
static private TabWidget mTabWidget;
private static String TAG = "MainTabActivity";
private static final String TAB_D = "D";
private static final String TAB_C = "C";
private static final String TAB_B = "B";
private static final String TAB_A = "A";
static private Timer mTimer;
static private MyTimerTask mTimerTask;
static private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 0x123:
stopTimer();
notFindDlnaTip();
// cheupdate();
break;
case 0x124:
stopTimer();
initView();
break;
case 0x125:
stopTimer();
wifiErrorTip();
break;
default:
break;
}
};
};
public static void StartTimer()
{
if(mTimer == null)
mTimer = new Timer(true);
if (mTimerTask != null)
{
mTimerTask.cancel();
}
mTimerTask = new MainTabActivity.MyTimerTask();
mTimer.schedule(mTimerTask, 10*1000);
}
private static void stopTimer()
{
if (mTimerTask != null)
{
mTimerTask.cancel(); //将原任务从队列中移除
}
// if(mTimer != null)
// {
// mTimer.cancel();
// }
}
static class MyTimerTask extends TimerTask
{
@Override
public void run()
{
// TODO Auto-generated method stub
Log.i(MainTabActivity.TAG, "run...");
handler.sendEmptyMessageDelayed(0x125, 1000);
}
}
public static String getGateWay(Context context){
WifiManager wifiManager;
DhcpInfo dhcpInfo;
wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
dhcpInfo = wifiManager.getDhcpInfo();
//dhcpInfo获取的是最后一次成功的相关信息,包括网关、ip等
return FormatIP(dhcpInfo.gateway);
}
public static String getLocalMacAddress() {
WifiManager wifi = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
System.out.println("info.getMacAddress()="+info.getMacAddress());
return info.getMacAddress();
}
@SuppressLint("NewApi")
public static String FormatIP(int IpAddress) {
return Formatter.formatIpAddress(IpAddress);
}
@Override
protected void onResume() {
super.onResume();
if (checkNetWork() && !mInitFlag)
{
Wifi_Setting.mac_crypto(getGateWay(MainTabActivity.this),getLocalMacAddress());
StartTimer();
mInitFlag = true;
}
}
static public void WifiNotFindDlna()
{
handler.sendEmptyMessageDelayed(0x123, 1000);
}
static public void gotoSearchActivity()
{
handler.sendEmptyMessageDelayed(0x124, 1000);
}
private static void notFindDlnaTip()
{
new AlertDialog.Builder(mContext).setTitle(mContext.getResources().getString(R.string.no_dlna))//""
.setNegativeButton(mContext.getResources().getString(R.string.research), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Wifi_Setting.mac_crypto(getGateWay(mContext),getLocalMacAddress());
StartTimer();
}
})
.setNeutralButton(mContext.getResources().getString(R.string.cancel), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
private static void wifiErrorTip()
{
new AlertDialog.Builder(mContext).setTitle(mContext.getResources().getString(R.string.no_res))
.setNegativeButton(mContext.getResources().getString(R.string.research), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Wifi_Setting.mac_crypto(getGateWay(mContext),getLocalMacAddress());
StartTimer();
}
})
.setNeutralButton(mContext.getResources().getString(R.string.cancel), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
UninitData();
}
private void UninitData()
{
// mContext = null;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_tab);
mContext = this;
// StartTimer();
}
EditText tv;
static private View subTabView1;
static private View subTabView2;
static private View subTabView3;
static private View subTabView4;
private static LinearLayout linearLayout1;
private static LinearLayout linearLayout2;
private static LinearLayout linearLayout3;
private static LinearLayout linearLayout4;
// private ImageView iv_tab_a;
//
// private TextView tv_tab_a;
//
// private ImageView iv_tab_b;
//
// private TextView tv_tab_b;
//
// private ImageView iv_tab_c;
//
// private TextView tv_tab_c;
//
// private ImageView iv_tab_d;
//
// private TextView tv_tab_d;
//
static private TabWidget tabWidget;
/*
* init view
*/
@SuppressLint({ "ResourceAsColor", "NewApi" })
private static void initView() {
subTabView1 = View.inflate(mContext, R.layout.main_tabhost_tab_a, null);
linearLayout1 = (LinearLayout)subTabView1.findViewById(R.id.tab_min_bg_a);
// iv_tab_a = (ImageView) subTabView1.findViewById(R.id.iv_tab_a);
// tv_tab_a = (TextView) subTabView1.findViewById(R.id.tv_tab_a);
subTabView2 = View.inflate(mContext, R.layout.main_tabhost_tab_b, null);
linearLayout2 = (LinearLayout)subTabView2.findViewById(R.id.tab_min_bg_b);
// iv_tab_b = (ImageView) subTabView2.findViewById(R.id.iv_tab_b);
// tv_tab_b = (TextView) subTabView2.findViewById(R.id.tv_tab_b);
subTabView3 = View.inflate(mContext, R.layout.main_tabhost_tab_c, null);
linearLayout3 = (LinearLayout)subTabView3.findViewById(R.id.tab_min_bg_c);
// iv_tab_c = (ImageView) subTabView3.findViewById(R.id.iv_tab_c);
// tv_tab_c = (TextView) subTabView3.findViewById(R.id.tv_tab_c);
subTabView4 = View.inflate(mContext, R.layout.main_tabhost_tab_d, null);
linearLayout4 = (LinearLayout)subTabView4.findViewById(R.id.tab_min_bg_d);
// iv_tab_d = (ImageView) subTabView4.findViewById(R.id.iv_tab_d);
// tv_tab_d = (TextView) subTabView4.findViewById(R.id.tv_tab_d);
mTabHost = ((TabActivity) mContext).getTabHost();
mTabHost.setBackgroundResource(R.drawable.bg);
TabHost.TabSpec spec1 = mTabHost.newTabSpec(TAB_A).setIndicator(subTabView1).setContent(new Intent(mContext,ContentActivity.class));
mTabHost.addTab(spec1);
TabHost.TabSpec spec2 = mTabHost.newTabSpec(TAB_B).setIndicator(subTabView2).setContent(new Intent(mContext,LocalActivity.class));
mTabHost.addTab(spec2);
TabHost.TabSpec spec3 = mTabHost.newTabSpec(TAB_C).setIndicator(subTabView3).setContent(new Intent(mContext,ShareActivity.class));
mTabHost.addTab(spec3);
TabHost.TabSpec spec4 = mTabHost.newTabSpec(TAB_D).setIndicator(subTabView4).setContent(new Intent(mContext,MoreActivity.class));
mTabHost.addTab(spec4);
mTabHost.setCurrentTab(0);
tabWidget = mTabHost.getTabWidget();
tabWidget.setBackgroundResource(R.drawable.tab_bg_);//将来是要设置背景图片的,现在以颜色代替
mTabHost.setOnTabChangedListener((OnTabChangeListener) mContext);
}
public void resetTextColor(int index){
for (int i = 0; i < mTabWidget.getChildCount(); i++)
{
TextView tv = (TextView) mTabWidget.getChildAt(i).findViewById(android.R.id.title);
if(index == i){
tv.setTextColor(Color.rgb(88, 183, 23));
}else{
tv.setTextColor(Color.rgb(170, 175, 181));
}
}
}
@TargetApi(16)
@SuppressLint("ResourceAsColor") @Override
public void onTabChanged(String tabId) {
//监测网络
// checkNetWork();
// TextView header_title = (TextView) findViewById(R.id.header_title);
if(tabId.equals("1")){
checkNetWork();
Log.e("gzf","1111111");
subTabView1.setBackgroundResource(R.drawable.tab_bg_bar);
// linearLayout1.setBackgroundResource(R.drawable.tab_min_bg);
// linearLayout2.setBackground(null);
// linearLayout3.setBackground(null);
// linearLayout4.setBackground(null);
}
if(tabId.equals("2")){
Log.e("gzf","22222222");
subTabView2.setBackgroundResource(R.drawable.tab_bg_bar);
// linearLayout2.setBackgroundResource(R.drawable.tab_min_bg);
// linearLayout1.setBackground(null);
// linearLayout3.setBackground(null);
// linearLayout4.setBackground(null);
}
if(tabId.equals("3")){
Log.e("gzf","333333333");
subTabView3.setBackgroundResource(R.drawable.tab_bg_bar);
// linearLayout3.setBackgroundResource(R.drawable.tab_min_bg);
// linearLayout2.setBackground(null);
// linearLayout1.setBackground(null);
// linearLayout4.setBackground(null);
checkNetWork();
}
if(tabId.equals("4")){
Log.e("gzf","4444444444444");
subTabView4.setBackgroundResource(R.drawable.tab_bg_bar);
// linearLayout4.setBackgroundResource(R.drawable.tab_min_bg);
// linearLayout2.setBackground(null);
// linearLayout3.setBackground(null);
// linearLayout1.setBackground(null);
// checkNetWork();
}
}
private boolean checkNetWork() {
if(isWifiConnected(MainTabActivity.this)){
return true;
}else{
new AlertDialog.Builder(MainTabActivity.this).setTitle(getResources().getString(R.string.unconnectowifi))
.setNegativeButton(getResources().getString(R.string.ok), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS");
startActivity(wifiSettingsIntent);
}
})
.setNeutralButton(getResources().getString(R.string.cancel), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
return false;
}
}
public boolean isWifiConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWiFiNetworkInfo = mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWiFiNetworkInfo != null) {
return mWiFiNetworkInfo.isAvailable();
}
}
return false;
}
@Override
public void onBackPressed() {
// super.onBackPressed();
new AlertDialog.Builder(MainTabActivity.this).setTitle(mContext.getResources().getString(R.string.sure_to_exit))
.setNegativeButton(mContext.getResources().getString(R.string.ok), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
MainTabActivity.this.finish();
}
})
.setNeutralButton(mContext.getResources().getString(R.string.cancel), new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
@Override
public void onClick(View v) {
// subTabView3.setBackgroundColor(R.color.transparent);
// subTabView3.setBackgroundColor(R.color.transparent);
// subTabView3.setBackgroundColor(R.color.transparent);
// subTabView3.setBackgroundColor(R.color.transparent);
}
}