package com.pekingopera.versionupdate.view;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import android.view.KeyEvent;
import android.view.Window;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.pekingopera.versionupdate.UpdateHelper;
import com.pekingopera.versionupdate.util.ResourceUtils;
import com.pekingopera.versionupdate.util.UpdateSP;


/**
 * ========================================
 * <p>
 * 版 权:dou361.com 版权所有 (C) 2015
 * <p>
 * 作 者:陈冠明
 * <p>
 * 个人网站:http://www.dou361.com
 * <p>
 * 版 本:1.0
 * <p>
 * 创建日期:2016/6/17
 * <p>
 * 描 述:
 * <p>
 * <p>
 * 修订历史:
 * <p>
 * ========================================
 */
public class DownloadDialogActivity extends Activity {

    private ProgressBar pgBar;
    private TextView tvPg;
    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        mContext = this;
        setContentView(ResourceUtils.getResourceIdByName(mContext, "layout", "jjdxm_download_dialog"));
        pgBar = (ProgressBar) findViewById(ResourceUtils.getResourceIdByName(mContext, "id", "jjdxm_update_progress_bar"));
        tvPg = (TextView) findViewById(ResourceUtils.getResourceIdByName(mContext, "id", "jjdxm_update_progress_text"));
        broadcast();
    }

    /**
     * 刷新下载进度
     */
    private void updateProgress(long percent) {
        if (tvPg != null) {
            tvPg.setText(percent + "%");
            pgBar.setProgress((int) percent);
        }
        if (percent >= 100) {
            finish();
        }
    }

    /**
     * 注册广播
     */
    private void broadcast() {
        LocalBroadcastManager broadcastManager = LocalBroadcastManager
                .getInstance(this);
        IntentFilter intentFilter = new IntentFilter();
        intentFilter
                .addAction("com.dou361.update.downloadBroadcast");
        /** 建议把它写一个公共的变量,这里方便阅读就不写了 */
        BroadcastReceiver mItemViewListClickReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                /** 刷新数据 */
                long type = intent.getLongExtra("type", 0);
                updateProgress(type);
            }
        };
        broadcastManager.registerReceiver(mItemViewListClickReceiver,
                intentFilter);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && UpdateSP.isForced()) {
            finish();
            if (UpdateHelper.getInstance().getForceListener() != null) {
                UpdateHelper.getInstance().getForceListener().onUserCancel(UpdateSP.isForced());
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}