import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;

import com.example.app.MyApplication;
import com.example.app.R;
import com.example.app.ui.AddAssetActivity;
import com.example.app.ui.HandoverActivity;
import com.example.app.ui.widget.OperateDialog;
import com.example.app.util.ToastUtil;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class AssetDetailActivity extends Activity implements AssetContract.View {

    private static final int REQUEST_CODE_UPDATE_ASSET = 1;

    @BindView(R.id.tv_asset_name)
    TextView mTvAssetName;
    @BindView(R.id.tv_asset_code)
    TextView mTvAssetCode;
    @BindView(R.id.tv_asset_type)
    TextView mTvAssetType;
    @BindView(R.id.tv_asset_owner)
    TextView mTvAssetOwner;

    private AssetInfo mAssetInfo;
    private AssetPresenter mPresenter;
    private ProgressDialog mProgressDialog;
    private OperateDialog mOperateDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_asset_detail);
        ButterKnife.bind(this);
        mPresenter = new AssetPresenter(this);
        mAssetInfo = (AssetInfo) getIntent().getSerializableExtra(AddAssetActivity.EXTRA_ASSET_INFO);
        initUI();
    }

    private void initUI() {
        mTvAssetName.setText(mAssetInfo.getAssetName());
        mTvAssetCode.setText(mAssetInfo.getAssetCode());
        mTvAssetType.setText(mAssetInfo.getAssetType());
        mTvAssetOwner.setText(mAssetInfo.getUserName());
    }

    @OnClick({R.id.btn_handover, R.id.btn_delete, R.id.btn_store, R.id.btn_update})
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_handover:
                handoverAsset();
                break;
            case R.id.btn_delete:
                deleteAsset();
                break;
            case R.id.btn_store:
                storeAsset();
                break;
            case R.id.btn_update:
                updateAsset();
                break;
        }
    }

    private void handoverAsset() {
        Intent intent = new Intent(this, HandoverActivity.class);
        intent.putExtra(HandoverActivity.EXTRA_ASSET_INFO, mAssetInfo);
        if (MyApplication.getInstance().mLoginUser != null) {
            if (MyApplication.getInstance().mLoginUser.getUserId().equals(mAssetInfo.getUserId())) {
                //登录用户为设备拥有者
                intent.putExtra(HandoverActivity.ASSET_HANDOVER_TYPE, HandoverActivity.ASSET_HANDOVER_TYPE_OWNER);
            } else {
                //登录用户为他人
                intent.putExtra(HandoverActivity.ASSET_HANDOVER_TYPE, HandoverActivity.ASSET_HANDOVER_TYPE_OTHER);
            }
        } else {
            intent.putExtra(HandoverActivity.ASSET_HANDOVER_TYPE, HandoverActivity.ASSET_HANDOVER_TYPE_OTHER);
        }
        startActivity(intent);
    }

    /**
     * 显示操作状态
     *
     * @param isSuccess 是否操作成功
     */
    private void showOperateResult(boolean isSuccess, String msg) {
        if (mOperateDialog != null) {
            mOperateDialog.dismiss();
        }
        if (isSuccess) {
            ToastUtil.showToast(this, R.string.operate_success);
            setResult(RESULT_OK);
            finish();
        } else {
            ToastUtil.showToast(this, TextUtils.isEmpty(msg) ? getString(R.string.operate_failed) : msg);
        }
    }

    /**
     * 删除设备
     */
    private void deleteAsset() {
        if (mOperateDialog == null) {
            mOperateDialog = new OperateDialog(this);
        }
        mOperateDialog.show();
        mOperateDialog.setTitle(getString(R.string.delete_asset_title));
        mOperateDialog.setMessage(getString(R.string.delete_asset_msg));
        mOperateDialog.setNegativeButton(getString(R.string.cancel), null);
        mOperateDialog.setPositiveButton(getString(R.string.confirm), new OperateDialog.OperateDialogListener() {
            @Override
            public void onClick(View view) {
                mPresenter.deleteAsset(mAssetInfo.getAssetId());
            }
        });
    }

    /**
     * 入库设备
     */
    private void storeAsset() {
        if (mOperateDialog == null) {
            mOperateDialog = new OperateDialog(this);
        }
        mOperateDialog.show();
        mOperateDialog.setTitle(getString(R.string.store_asset_title));
        mOperateDialog.setMessage(getString(R.string.store_asset_msg));
        mOperateDialog.setNegativeButton(getString(R.string.cancel), null);
        mOperateDialog.setPositiveButton(getString(R.string.confirm), new OperateDialog.OperateDialogListener() {
            @Override
            public void onClick(View view) {
                mPresenter.storeAsset(mAssetInfo.getAssetId());
            }
        });
    }

    /**
     * 更新设备信息
     */
    private void updateAsset() {
        Intent intent = new Intent(this, AddAssetActivity.class);
        intent.putExtra(AddAssetActivity.EXTRA_ASSET_INFO, mAssetInfo);
        intent.putExtra(AddAssetActivity.EXTRA_IS_UPDATE_ASSET, true);
        startActivityForResult(intent, REQUEST_CODE_UPDATE_ASSET);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE_UPDATE_ASSET && resultCode == RESULT_OK) {
            setResult(RESULT_OK);
            finish();
        }
    }

    @Override
    public void showLoading() {
        if (mProgressDialog == null) {
            mProgressDialog = new ProgressDialog(this);
            mProgressDialog.setMessage(getString(R.string.loading));
            mProgressDialog.setCanceledOnTouchOutside(false);
        }
        mProgressDialog.show();
    }

    @Override
    public void hideLoading() {
        if (mProgressDialog != null) {
            mProgressDialog.dismiss();
        }
    }

    @Override
    public void showError(String message) {
        hideLoading();
        ToastUtil.showToast(this, message);
    }

    @Override
    public void showDeleteAssetResult(boolean isSuccess, String message) {
        showOperateResult(isSuccess, message);
    }

    @Override
    public void showStoreAssetResult(boolean isSuccess, String message) {
        showOperateResult(isSuccess, message);
    }

}
设备移交协议书 - Android 开发代码示例

原文地址: https://www.cveoy.top/t/topic/llSU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录