public class newUnitConverter extends Activity implements OnClickListener, AdapterView.OnItemSelectedListener{
/** STRINGS */
String[] strings =
{
getResources().getString(R.array.my_string_array), };
String[] subs =
{
getResources().getString(R.array.my_string_array_sub),
};
int arr_images[] = { R.drawable.temperature, R.drawable.weight, R.drawable.legnth, R.drawable.power,
R.drawable.energy, R.drawable.velocity, R.drawable.area, R.drawable.volume};
private Spinner UnitSpinner;
private TextView inputValue;
private Spinner SpinnerFrom;
private Spinner SpinnerTo;
private Button ButtonConvert;
private TextView ResultView;
ArrayAdapter<String> UnitArray;
ArrayAdapter<String> UnitArrayadapter;
private Strategy currentStrategy;
private String unitfrom;
private String unitto;
private static newUnitConverter instance;
@SuppressLint("ShowToast")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Intent intent = getIntent();
String scheme = intent.getScheme();
if(scheme != null){
final Uri myURI=intent.getData();
String queryString = new String();
if(myURI!=null)
{
queryString = myURI.getQuery();
}
if (queryString != null)
{
final String[] arrParameters = queryString.split("&");
for (final String tempParameterString : arrParameters)
{
final String[] arrTempParameter = tempParameterString.split("=");
if (arrTempParameter.length >= 2)
{
final String parameterValue = arrTempParameter[1];
//do something with the parameters
Toast.makeText(this, parameterValue, 500).show();
}
}
}
}
setContentView(R.layout.mainpage);
/** Hide Auto Keyboard */
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
/** Hide Auto Keyboard End here */
UnitSpinner = (Spinner)findViewById(R.id.UnitSpinner);
UnitSpinner.setOnItemSelectedListener(this);
UnitArray=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item);
UnitArray.setDropDownViewResource(android.R.layout.simple_expandable_list_item_1);
UnitSpinner.setAdapter(new UnitArray(newUnitConverter.this, R.layout.row,strings));
SpinnerFrom = (Spinner)findViewById(R.id.SpinnerFrom);
SpinnerFrom.setOnItemSelectedListener(this);
SpinnerTo = (Spinner)findViewById(R.id.SpinnerTo);
SpinnerTo.setOnItemSelectedListener(this);
UnitArrayadapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item);
UnitArrayadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerFrom.setAdapter(UnitArrayadapter);
SpinnerTo.setAdapter(UnitArrayadapter);
UnitArrayadapter.setNotifyOnChange(true);
ResultView = (TextView)findViewById(R.id.TextViewResult);
ResultView.setClickable(false);
ButtonConvert = (Button)findViewById(R.id.Button01);
ButtonConvert.setOnClickListener(this);
inputValue = (TextView)findViewById(R.id.EditTextValue);
//initialization
currentStrategy = new Temperature();
instance = this;
}
//for Icons
public class UnitArray extends ArrayAdapter<String>{
public UnitArray(Context context, int textViewResourceId, String[] objects) {
super(context, textViewResourceId, objects);
}
@Override
public View getDropDownView(int position, View convertView,ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=getLayoutInflater();
View row=inflater.inflate(R.layout.row, parent, false);
TextView label=(TextView)row.findViewById(R.id.SelectUnits);
label.setText(
getResources().getString(R.array.my_string_array));
TextView sub=(TextView)row.findViewById(R.id.sub);
sub.setText(subs[position]);
ImageView icon=(ImageView)row.findViewById(R.id.image);
icon.setImageResource(arr_images[position]);
return row;
}
}
public static newUnitConverter getInstance(){
return instance;
}
public void onItemSelected(AdapterView<?> parent){
}
public void onNothingSelected(AdapterView<?> parent){
}
public void onItemSelected(AdapterView<?> parent, View v,
int position, long id){
if(v.getParent() == UnitSpinner){
switch(position){
case 0:
setStrategy(new Temperature());
break;
case 1:
setStrategy( new Weight());
break;
case 2:
setStrategy(new Length());
break;
case 3:
setStrategy(new Power());
break;
case 4:
setStrategy(new Energy());
break;
case 5:
setStrategy(new Velocity());
break;
case 6:
setStrategy(new Area());
break;
case 7:
setStrategy(new Volume());
break;
}
fillFromToSpinner(position);
SpinnerFrom.setSelection(0);
SpinnerTo.setSelection(0);
//If only first spinner is selected and
//the from and to spinners are not clicked at all
unitfrom = (String)(SpinnerFrom.getItemAtPosition(0).toString());
unitto = (String)(SpinnerTo.getItemAtPosition(0).toString());
//reset the result
ResultView.setText("");
}
else if(v.getParent() == SpinnerFrom){
unitfrom = (String)(SpinnerFrom.getSelectedItem().toString());
}
else if(v.getParent() == SpinnerTo){
unitto = (String)(SpinnerTo.getSelectedItem().toString());
}
}
private void fillFromToSpinner(int position){
switch(position)
{
case 0:
fillSpinnerWithTempUnit();
break;
case 1:
fillSpinnerWithWeightUnit();
break;
case 2:
fillSpinnerWithLengthUnit();
break;
case 3:
fillSpinnerWithPowerUnit();
break;
case 4:
fillSpinnerWithenErgyUnit();
break;
case 5:
fillSpinnerWithVelocityUnit();
break;
case 6:
fillSpinnerWithAreaUnit();
break;
case 7:
fillSpinnerWithVolumeUnit();
break;
}
}
private void fillSpinnerWithTempUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.temperatureunitc));
UnitArrayadapter.add(getResources().getString(R.string.temperatureunitf));
UnitArrayadapter.add(getResources().getString(R.string.temperatureunitkelvin));
UnitArrayadapter.notifyDataSetChanged();
}
private void fillSpinnerWithWeightUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.weightunitkg));
UnitArrayadapter.add(getResources().getString(R.string.weightunitgm));
UnitArrayadapter.add(getResources().getString(R.string.weightunitlb));
UnitArrayadapter.add(getResources().getString(R.string.weightunitounce));
UnitArrayadapter.add(getResources().getString(R.string.weightunitmg));
UnitArrayadapter.notifyDataSetChanged();
}
private void fillSpinnerWithLengthUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.lengthunitmile));
UnitArrayadapter.add(getResources().getString(R.string.lengthunitkm));
UnitArrayadapter.add(getResources().getString(R.string.lengthunitm));
UnitArrayadapter.add(getResources().getString(R.string.lengthunitcm));
UnitArrayadapter.add(getResources().getString(R.string.lengthunitmm));
UnitArrayadapter.add(getResources().getString(R.string.lengthunitinch));
UnitArrayadapter.add(getResources().getString(R.string.lengthunitfeet));
}
private void fillSpinnerWithPowerUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.powerunitwatts));
UnitArrayadapter.add(getResources().getString(R.string.powerunithorseposer));
UnitArrayadapter.add(getResources().getString(R.string.powerunitkilowatts));
}
private void fillSpinnerWithenErgyUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.energyunitcalories));
UnitArrayadapter.add(getResources().getString(R.string.energyunitjoules));
UnitArrayadapter.add(getResources().getString(R.string.energyunitkilocalories));
}
private void fillSpinnerWithVelocityUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.velocityunitkmph));
UnitArrayadapter.add(getResources().getString(R.string.velocityunitmilesperh));
UnitArrayadapter.add(getResources().getString(R.string.velocityunitmeterpers));
UnitArrayadapter.add(getResources().getString(R.string.velocityunitfeetpers));
}
private void fillSpinnerWithAreaUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.areaunitsqkm));
UnitArrayadapter.add(getResources().getString(R.string.areaunitsqmiles));
UnitArrayadapter.add(getResources().getString(R.string.areaunitsqm));
UnitArrayadapter.add(getResources().getString(R.string.areaunitsqcm));
UnitArrayadapter.add(getResources().getString(R.string.areaunitsqmm));
UnitArrayadapter.add(getResources().getString(R.string.areaunitsqyard));
}
private void fillSpinnerWithVolumeUnit(){
UnitArrayadapter.clear();
UnitArrayadapter.add(getResources().getString(R.string.volumeunitlitres));
UnitArrayadapter.add(getResources().getString(R.string.volumeunitmillilitres));
UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubicm));
UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubiccm));
UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubicmm));
UnitArrayadapter.add(getResources().getString(R.string.volumeunitcubicfeet));
}
public void onClick(View v){
if(v == ButtonConvert){
if(!inputValue.getText().toString().equals("")){
double in = Double.parseDouble(inputValue.getText().toString());
double result = currentStrategy.Convert(unitfrom, unitto, in);
ResultView.setText(Double.toString(result));
/** hid keyboard after press a button **/
InputMethodManager inputManager = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
else {
ResultView.setText("");
}
}
}
private void setStrategy(Strategy s){
currentStrategy = s;
}
///Here is the Menu
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater perfect = getMenuInflater();
perfect.inflate(R.menu.menus, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.menuAbout:
startActivity(new Intent("mini.worlld.econverter.ABOUT") );
return true;
}
return false;
}
}