package org.openlmis.core.view.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.TextView;
import org.openlmis.core.R;
import org.openlmis.core.googleAnalytics.ScreenName;
import org.openlmis.core.utils.Constants;
import org.openlmis.core.view.adapter.UnpackNumAdapter;
import org.openlmis.core.view.widget.SingleClickButtonListener;
import roboguice.inject.ContentView;
import roboguice.inject.InjectView;
@ContentView(R.layout.activity_select_unpack_kit_number)
public class SelectUnpackKitNumActivity extends BaseActivity {
@InjectView(R.id.vg_unpack_num_container)
protected GridView gridView;
@InjectView(R.id.tv_select_unpack_kit_number)
protected TextView tvLabel;
@InjectView(R.id.btn_next)
protected View btnNext;
@InjectView(R.id.tv_select_num_warning)
protected View tvSelectNumWarning;
private UnpackNumAdapter adapter;
private static final int MAX_UNPACK_QUANTITY = 100;
private static final String PARAM_KIT_SOH = "param_kit_soh";
@Override
protected ScreenName getScreenName() {
return ScreenName.SelectUnpackKitNumberScreen;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
private void init() {
Intent intent = getIntent();
final String kitName = intent.getStringExtra(Constants.PARAM_KIT_NAME);
tvLabel.setText(getString(R.string.label_select_unpack_num, kitName));
final String productCode = intent.getStringExtra(Constants.PARAM_KIT_CODE);
long kitSOH = Math.min(intent.getLongExtra(PARAM_KIT_SOH, 0L), MAX_UNPACK_QUANTITY);
adapter = new UnpackNumAdapter(this, kitSOH, kitName);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
tvSelectNumWarning.setVisibility(View.INVISIBLE);
}
});
btnNext.setOnClickListener(new SingleClickButtonListener() {
@Override
public void onSingleClick(View v) {
if (gridView.getCheckedItemPosition() == GridView.INVALID_POSITION) {
tvSelectNumWarning.setVisibility(View.VISIBLE);
return;
}
int unpackNum = gridView.getCheckedItemPosition() + 1;
startActivityForResult(UnpackKitActivity.getIntentToMe(SelectUnpackKitNumActivity.this, productCode, unpackNum, kitName), Constants.REQUEST_UNPACK_KIT);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && requestCode == Constants.REQUEST_UNPACK_KIT) {
setResult(Activity.RESULT_OK);
finish();
}
}
public static Intent getIntentToMe(Activity activity, String kitName, String productCode, long kitSoh) {
Intent intent = new Intent(activity, SelectUnpackKitNumActivity.class);
intent.putExtra(Constants.PARAM_KIT_NAME, kitName);
intent.putExtra(Constants.PARAM_KIT_CODE, productCode);
intent.putExtra(PARAM_KIT_SOH, kitSoh);
return intent;
}
}