package com.zz.quicknews.activity;

import android.app.FragmentTransaction;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.zz.quicknews.util.NetWorkState;
import com.zz.quicknews.R;
import com.zz.quicknews.adapter.GridViewAdapter;
import com.zz.quicknews.fragment.HomeFragment;

import cn.jpush.android.api.JPushInterface;

import static android.view.KeyEvent.KEYCODE_BACK;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private GridView mGvPage;
    public static boolean isForeground = false;

    //    private boolean mNetState;//网络状态
//    public static boolean mNetState;//网络状态
    private NetWorkChangeReceiver mNetReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Fresco.initialize(this);
        JPushInterface.init(this);
        System.out.println("JPushInterface.getRegistrationID");
        JPushInterface.init(getApplicationContext());
        String rid = JPushInterface.getRegistrationID(getApplicationContext());
        System.out.println("JPushInterface.getRegistrationID" + rid);
        setContentView(R.layout.activity_main);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();


        initView();


        mNetReceiver = new NetWorkChangeReceiver();
        IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
        registerReceiver(mNetReceiver, filter);
        NetWorkState.mNetState = NetWorkState.isConn(MainActivity.this);


//        registerMessageReceiver();  // used for receive msg

    }

    @Override
    protected void onResume() {
        super.onResume();
        JPushInterface.onResume(getApplicationContext());
        isForeground = true;

    }

    @Override
    protected void onPause() {
        super.onPause();
        JPushInterface.onPause(getApplicationContext());
        isForeground = false;
    }

    @Override
    protected void onDestroy() {
//        unregisterReceiver(mMessageReceiver);
        super.onDestroy();
        if (mNetReceiver != null) {
            unregisterReceiver(mNetReceiver);
            mNetReceiver = null;
        }
    }

    public void initView() {

        mGvPage = (GridView) findViewById(R.id.pageView);
        int images[] = {R.drawable.b_newhome_tabbar_night, R.drawable.b_newdiscover_tabbar_night,
                R.drawable.b_newcare_tabbar_night, R.drawable.b_newmine_tabbar_night};
        int newImages[] = {R.drawable.b_newhome_tabbar_press, R.drawable.b_newdiscover_tabbar_press,
                R.drawable.b_newcare_tabbar_press, R.drawable.b_newmine_tabbar_press};
        String titles[] = {"首页", "视频", "关注", "我的"};
        final GridViewAdapter adapter = new GridViewAdapter(MainActivity.this, images, titles, newImages);
        mGvPage.setAdapter(adapter);
        mGvPage.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                System.out.println("点击的位置是" + i);
                adapter.setSelectPosition(i);
                adapter.notifyDataSetChanged();
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                switch (i) {
                    case 0:
                        ft.replace(R.id.content_view, HomeFragment.newInstance(0)).commit();
                        break;
                    case 1:
                        ft.replace(R.id.content_view, HomeFragment.newInstance(1)).commit();
                        break;

                }
            }
        });
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.add(R.id.content_view, new HomeFragment()).commit();
        adapter.setSelectPosition(0);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {


        }
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus && Build.VERSION.SDK_INT >= 21) {
            View decorView = getWindow().getDecorView();
            decorView.setSystemUiVisibility(
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            );
            getWindow().setNavigationBarColor(Color.TRANSPARENT);
            getWindow().setStatusBarColor(Color.TRANSPARENT);
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode==KEYCODE_BACK){
            AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("提示");
            builder.setMessage("确定退出吗");
            builder.setPositiveButton("是的", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();;
                }
            });

            builder.setNegativeButton("不", null);
            builder.create();
            builder.show();
        }
        return super.onKeyDown(keyCode, event);
    }

    /* //for receive customer msg from jpush server
    private MessageReceiver mMessageReceiver;
    public static final String MESSAGE_RECEIVED_ACTION = "com.example.jpushdemo.MESSAGE_RECEIVED_ACTION";
    public static final String KEY_TITLE = "title";
    public static final String KEY_MESSAGE = "message";
    public static final String KEY_EXTRAS = "extras";

    public void registerMessageReceiver() {
        mMessageReceiver = new MessageReceiver();
        IntentFilter filter = new IntentFilter();
        filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
        filter.addAction(MESSAGE_RECEIVED_ACTION);
        registerReceiver(mMessageReceiver, filter);
    }

    public class MessageReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
                String messge = intent.getStringExtra(KEY_MESSAGE);
                String extras = intent.getStringExtra(KEY_EXTRAS);
                StringBuilder showMsg = new StringBuilder();
                showMsg.append(KEY_MESSAGE + " : " + messge + "\n");
                if (!NewsUtil.isEmpty(extras)) {
                    showMsg.append(KEY_EXTRAS + " : " + extras + "\n");
                }
//                setCostomMsg(showMsg.toString());
            }
        }
    }
*/

    public class NetWorkChangeReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            switch (intent.getAction()) {
                case ConnectivityManager.CONNECTIVITY_ACTION:
//                    isConn(context);
                    boolean state;
                    NetWorkState.mNetState = NetWorkState.isConn(MainActivity.this);
                    Log.e("mNetState:  ", NetWorkState.mNetState + "");
                    break;
            }
        }

       /* public void isConn(Context context){
            ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo network = conManager.getActiveNetworkInfo();
            if(network!=null){
                if (!network.isAvailable()){
                    Toast.makeText(context,"网络已断开,请检查网络",Toast.LENGTH_SHORT).show();
                    mNetState=false;
                }else if (!network.isConnectedOrConnecting()){
                    Toast.makeText(context,"网络未连接或连接失败,请检查网络",Toast.LENGTH_SHORT).show();
                    mNetState=false;
                }else {
                    switch (network.getType()) {
                        case ConnectivityManager.TYPE_WIFI:
                            Toast.makeText(context, "wifi网络已连接,请放心使用", Toast.LENGTH_SHORT).show();
                            break;
                        case ConnectivityManager.TYPE_MOBILE:
                            Toast.makeText(context, "手机网络已连接,请注意流量使用,使用Wifi更流畅哦", Toast.LENGTH_SHORT).show();
                            break;
                    }
                    mNetState=true;
                }
            }else {
                NetWorkState.showNoNetWorkDlg(context);
                mNetState=false;
            }
        }*/
    }


}