/* @file DeviceActivity.java * * @author marco corvi * @date nov 2016 * * @brief TopoDroid DistoX device selection dialog (for multi-DistoX) * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.util.Set; import java.util.List; import java.util.ArrayList; import android.app.Dialog; import android.os.Bundle; import android.content.Context; import android.content.DialogInterface; import android.widget.TextView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Button; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Toast; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.util.Log; import android.bluetooth.BluetoothDevice; public class DeviceSelectDialog extends MyDialog implements OnItemClickListener { private Context mContext; private TopoDroidApp mApp; private DataDownloader mDownloader; private ILister mLister; private ListView mList; // --------------------------------------------------------------- DeviceSelectDialog( Context context, TopoDroidApp app, DataDownloader downloader, ILister lister ) { super( context, R.string.DeviceSelectDialog ); mContext = context; mApp = app; mDownloader = downloader; mLister = lister; // Log.v("DistoX", "device select dialog created"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Log.v("DistoX", "device select dialog init layout"); initLayout( R.layout.device_select_dialog, R.string.title_device_select ); mList = (ListView) findViewById(R.id.dev_list); mList.setOnItemClickListener( this ); // mList.setLongClickable( true ); mList.setDividerHeight( 2 ); updateList(); } private void updateList( ) { ListItemAdapter array_adapter = new ListItemAdapter( mContext, R.layout.message ); // mArrayAdapter.clear(); if ( TDSetting.mLevelOverExperimental ) { // FIXME VirtualDistoX array_adapter.add( "X000" ); } ArrayList<Device> devices = mApp.mDData.getDevices(); for ( Device device : devices ) { // String addr = device.mAddress; // String model = device.mName; // String name = device.mName; // String nick = device.mNickname; array_adapter.add( device.toString() ); } mList.setAdapter( array_adapter ); } @Override public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { dismiss(); CharSequence item = ((TextView) view).getText(); // TDLog.Log( TDLog.LOG_INPUT, "DeviceActivity onItemClick() " + item.toString() ); StringBuffer buf = new StringBuffer( item ); int k = buf.lastIndexOf(" "); String[] vals = item.toString().split(" ", 3 ); String address = ( vals[0].equals("X000") )? Device.ZERO_ADDRESS : vals[2]; // String address = vals[2]; // FIXME VirtualDistoX mApp.setDevice( address ); mLister.setTheTitle(); mDownloader.doDataDownload(); } }