AdminFragment.java 6.92 KB
package com.sunvote.xpadapp.fragments;

import android.app.AlertDialog;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

import com.sunvote.util.LogUtil;
import com.sunvote.util.XPadSystem;
import com.sunvote.xpadapp.R;
import com.sunvote.xpadapp.base.BaseFragment;
import com.sunvote.xpadapp.server.MoniService;

public class AdminFragment extends BaseFragment {
    private TextView tvModalInfo;
    private String TAG = "AdminFragment";
    private  ImageButton btnBack;
    private Button btnConfig;
    private Button btnPowerOff;
    private Button firmUpdate;
    private Button btnComTest;
    private Button match;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_admin, container, false);
        mMainActivity.adminFragment = this;

        tvModalInfo =  view.findViewById(R.id.admin_modal_info);
        btnBack =  view.findViewById(R.id.admin_btnback);
        btnConfig =  view.findViewById(R.id.admin_config_mode);
        btnPowerOff =  view.findViewById(R.id.admin_btnShutdown);
        firmUpdate = view.findViewById(R.id.firm_update);
        match = view.findViewById(R.id.match);

        String msg = getString(R.string.app_version) + getVersionName() ;
        if(mMainActivity.mModelInfo != null){
            msg += "     固件版本:" + mMainActivity.mModelInfo.sVer;
        }
        tvModalInfo.setText(msg);
        btnBack.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                goBack();
            }
        });
        btnConfig.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                LogUtil.d("AdminFragment", "btnConfig");
                mMainActivity.presenter.configMode();
                Toast.makeText(getActivity(),R.string.modify_id_msg,Toast.LENGTH_SHORT).show();

            }
        });
        match.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mMainActivity.presenter.execKeypadMatch(0, 0);
            }
        });
        btnPowerOff.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setMessage("确认关机吗?");
                builder.setTitle("退出关机");
                builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        Intent intent = new Intent(getActivity(),MoniService.class);
                        getActivity().stopService(intent);
//                        getActivity().finish();
                        com.sunvote.xpadcomm.XPadSystem.powerOffXPad(getActivity());
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                builder.create().show();

            }
        });

        btnComTest =  view.findViewById(R.id.admin_btnComTest);
        btnComTest.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
//                Toast.makeText(getActivity(),"如果服务器IP地址变化,则自动转化一次",Toast.LENGTH_SHORT).show();
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setMessage("确认要退出应用吗?");
                builder.setTitle("退出应用");
                builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        Intent intent = new Intent(getActivity(),MoniService.class);
                        getActivity().stopService(intent);
                        getActivity().finish();
                        com.sunvote.xpadcomm.XPadSystem.setNavgationVisible(getActivity());
//                        com.sunvote.xpadcomm.XPadSystem.powerOffXPad(getActivity());
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                builder.create().show();
            }
        });

        firmUpdate.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentManager fm = getFragmentManager();
                FragmentTransaction tx = fm.beginTransaction();
                tx.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
                tx.replace(R.id.frame_content, new FirmUpdateFragment());
                tx.commit();
            }
        });

        return view;
    }

    @Override
    public void onResume() {
        mMainActivity.showBottomUIMenu();
        super.onResume();
    }

    @Override
    public void onStop() {
        mMainActivity.hideBottomUIMenu();
        mMainActivity.adminFragment = null;
        super.onStop();
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mMainActivity.adminFragment = null;
    }

    private String getVersionName()  {
        String version = "";

        PackageManager packageManager = getActivity().getPackageManager();
        try {
            PackageInfo packInfo = packageManager.getPackageInfo(getActivity().getPackageName(), 0);
            version = packInfo.versionName;// + "." + packInfo.versionCode;
        } catch (PackageManager.NameNotFoundException e) {
            LogUtil.e(TAG,e);
        }

        return version;
    }

    private void goBack() {
        FragmentManager fm = getFragmentManager();
        FragmentTransaction tx = fm.beginTransaction();
        tx.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
        tx.remove(AdminFragment.this);
        tx.commit();
    }
}