/** @file CalibListDialog.java * * @author marco corvi * @date nov 2014 * * @brief TopoDroid calibs list for a device * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.util.List; import java.util.ArrayList; import android.os.Bundle; import android.app.Dialog; import android.content.Context; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Button; import android.widget.TextView; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; // import android.widget.AdapterView.OnItemLongClickListener; import android.widget.Toast; public class CalibListDialog extends MyDialog implements OnItemClickListener , View.OnClickListener // , OnItemLongClickListener { private DeviceActivity mParent; private TopoDroidApp mApp; private ArrayAdapter<String> mArrayAdapter; // private ListItemAdapter mArrayAdapter; private Button mBtnNew; private Button mBtnImport; // private Button mBtnCancel; private Button mBtnReset; private ListView mList; public CalibListDialog( Context context, DeviceActivity parent, TopoDroidApp app ) { super( context, R.string.CalibListDialog ); mParent = parent; mApp = app; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calib_list_dialog ); getWindow().setLayout( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT ); mArrayAdapter = new ArrayAdapter<String>( mContext, R.layout.message ); // mArrayAdapter = new ListItemAdapter( mContext, R.layout.message ); mList = (ListView) findViewById(R.id.list); mList.setAdapter( mArrayAdapter ); mList.setOnItemClickListener( this ); mList.setDividerHeight( 2 ); mBtnNew = (Button) findViewById(R.id.button_new); mBtnImport = (Button) findViewById(R.id.button_import); mBtnReset = (Button) findViewById(R.id.button_reset); // mBtnCancel = (Button) findViewById(R.id.button_cancel); mBtnNew.setOnClickListener( this ); mBtnImport.setOnClickListener( this ); if ( TDSetting.mLevelOverExperimental ) { mBtnReset.setOnClickListener( this ); } else { mBtnReset.setVisibility( View.GONE ); } // mBtnCancel.setOnClickListener( this ); setTitle( R.string.title_calib ); updateList(); } private void updateList() { if ( mApp.mDData != null && mApp.mDevice != null ) { List< String > list = mApp.mDData.selectDeviceCalibs( mApp.mDevice.mAddress ); // mList.setAdapter( mArrayAdapter ); mArrayAdapter.clear(); for ( String item : list ) { mArrayAdapter.add( item ); } } } // @Override public void onClick(View v) { // TDLog.Log( TDLog.LOG_INPUT, "CalibListDialog onClick() " ); Button b = (Button) v; hide(); if ( b == mBtnNew ) { mParent.openCalibration( null ); } else if ( b == mBtnImport ) { mParent.openCalibrationImportDialog(); } else if ( b == mBtnReset ) { mParent.askCalibReset(); // } else if ( b == mBtnCancel ) { // /* nothing */ } dismiss(); } // --------------------------------------------------------------- // list items click // @Override // public boolean onItemLongClick(AdapterView<?> parent, View view, int pos, long id) // { // CharSequence item = ((TextView) view).getText(); // String value = item.toString(); // // String[] st = value.split( " ", 3 ); // int from = value.indexOf('<'); // int to = value.lastIndexOf('>'); // String plot_name = value.substring( from+1, to ); // String plot_type = value.substring( to+2 ); // mParent.startPlotDialog( plot_name, plot_type ); // context of current SID // dismiss(); // return true; // } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { CharSequence item = ((TextView) view).getText(); String name = item.toString(); // TDLog.Log( TDLog.LOG_INPUT, "CalibListDialog onItemClick() " + name ); // TODO open calibration activity mParent.openCalibration( name ); dismiss(); } }