CartActivity.java 4.47 KB
package com.naji.xiaotao.cart.ui;

import android.content.Context;
import android.databinding.ObservableList;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;

import com.naji.xiaotao.BR;
import com.naji.xiaotao.R;
import com.naji.xiaotao.cart.vm.CartItemViewModel;
import com.naji.xiaotao.cart.vm.CartViewModel;
import com.naji.xiaotao.databinding.ActivityCartBinding;

import me.goldze.mvvmhabit.base.BaseActivity;
import me.goldze.mvvmhabit.utils.KLog;

public class CartActivity extends BaseActivity<ActivityCartBinding,CartViewModel>implements CartViewModel.OnRequestFocusListener{

    private InputMethodManager mInputMethorManager;

    @Override
    public int initContentView(Bundle savedInstanceState) {
        mInputMethorManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        return R.layout.activity_cart;
    }

    @Override
    public int initVariableId() {
        return BR.viewModel;
    }

    @Override
    public CartViewModel initViewModel() {
        return new CartViewModel(this,getIntent().getStringExtra("orderid"),this,getIntent().getStringExtra("fromSource"),getIntent().getBooleanExtra("isFast",false),getIntent().getBooleanExtra("isWaitingSure",false));
    }

    @Override
    public void initViewObservable() {
        super.initViewObservable();
        binding.remarkEdt.setCursorVisible(false);
        binding.remarkEdt.setFocusableInTouchMode(false);
        binding.remarkEdt.setFocusable(false);
        viewModel.observableList.addOnListChangedCallback(new ObservableList.OnListChangedCallback<ObservableList<CartItemViewModel>>() {
            @Override
            public void onChanged(ObservableList<CartItemViewModel> sender) {
                KLog.d("AAAAAAAAA");
            }

            @Override
            public void onItemRangeChanged(ObservableList<CartItemViewModel> sender, int positionStart, int itemCount) {
                KLog.d("BBBBBBBBB");
            }

            @Override
            public void onItemRangeInserted(ObservableList<CartItemViewModel> sender, int positionStart, int itemCount) {
                KLog.d("CCCCCCCC");
                if(viewModel.isSetMealFee.equals("1")){
                    if(viewModel.observableList.size()>2){
                        binding.empty.setVisibility(View.GONE);
                        binding.content.setVisibility(View.VISIBLE);
                    }
                }else{
                    binding.empty.setVisibility(View.GONE);
                    binding.content.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void onItemRangeMoved(ObservableList<CartItemViewModel> sender, int fromPosition, int toPosition, int itemCount) {
                KLog.d("DDDDDDDDDDD");
            }

            @Override
            public void onItemRangeRemoved(ObservableList<CartItemViewModel> sender, int positionStart, int itemCount) {
                KLog.d("EEEEEEEEEEE");
                if(!TextUtils.isEmpty(viewModel.orderEntity.getMeal_fee())){
                    if(viewModel.observableList.size()<=2){
                        binding.content.setVisibility(View.GONE);
                        binding.empty.setVisibility(View.VISIBLE);
                    }
                }else{
                    if(viewModel.observableList.size()<=0){
                        binding.content.setVisibility(View.GONE);
                        binding.empty.setVisibility(View.VISIBLE);
                    }
                }
            }
        });
    }

    @Override
    public void onPnumRequestFocus() {
        binding.pnumEdt.setFocusable(true);
        binding.pnumEdt.setFocusableInTouchMode(true);
        binding.pnumEdt.requestFocus();
        binding.pnumEdt.findFocus();
        binding.pnumEdt.setSelection(binding.pnumEdt.getText().toString().length());
        mInputMethorManager.showSoftInput(binding.pnumEdt,InputMethodManager.SHOW_FORCED);
    }

    @Override
    public void onRemardRequestFocus() {
        binding.remarkEdt.setFocusable(true);
        binding.remarkEdt.setFocusableInTouchMode(true);
        binding.remarkEdt.requestFocus();
        binding.remarkEdt.findFocus();
        binding.remarkEdt.setSelection(binding.remarkEdt.getText().toString().length());
        mInputMethorManager.showSoftInput(binding.remarkEdt,InputMethodManager.SHOW_FORCED);
    }
}