/** @file DeviceX310MemoryDialog.java * * @author marco corvi * @date nov 2011 * * @brief TopoDroid DistoX X310 device memory dialog * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.util.ArrayList; import android.os.Bundle; import android.app.Dialog; // import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnDismissListener; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.ListView; import android.widget.ArrayAdapter; class DeviceX310MemoryDialog extends MyDialog implements View.OnClickListener , IMemoryDialog { private Button mBtnDump; // private Button mBtnBack; private EditText mETdumpfrom; private EditText mETdumpto; private EditText mETdumpfile; // List< MemoryOctet> mMemory; ArrayAdapter< String > mArrayAdapter; ListView mList; DeviceActivity mParent; DeviceX310MemoryDialog( Context context, DeviceActivity parent ) { super( context, R.string.DeviceX310MemoryDialog ); mParent = parent; } int index2addr( int index ) { int addr = 0; while ( index >= 56 ) { index -= 56; addr += 0x400; } addr += 18 * index; return addr; } @Override public void onCreate( Bundle bundle ) { super.onCreate( bundle ); initLayout( R.layout.device_x310_memory_dialog, R.string.memoryX310 ); getWindow().setLayout( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT ); mETdumpfrom = (EditText) findViewById( R.id.et_dumpfrom ); mETdumpto = (EditText) findViewById( R.id.et_dumpto ); mETdumpfile = (EditText) findViewById( R.id.et_dumpfile ); mBtnDump = (Button) findViewById(R.id.button_dump ); mBtnDump.setOnClickListener( this ); // mBtnBack = (Button) findViewById(R.id.button_cancel); // mBtnBack.setOnClickListener( this ); mArrayAdapter = new ArrayAdapter<String>( mParent, R.layout.message ); mList = (ListView) findViewById(R.id.list_memory); mList.setAdapter( mArrayAdapter ); // mList.setOnItemClickListener( this ); mList.setDividerHeight( 2 ); // int[] ht = new int[2]; // mParent.retrieveDeviceHeadTail( ht ); // setText( mTVshead, mTVstail, ht ); } public void updateList( ArrayList<MemoryOctet> memory ) { mArrayAdapter.clear(); for ( MemoryOctet m : memory ) mArrayAdapter.add( m.toString() ); mList.invalidate(); } static final int MAX_ADDRESS_X310 = 1064; @Override public void onClick( View view ) { int[] ht = new int[2]; String from, to, error; switch ( view.getId() ) { case R.id.button_dump: from = mETdumpfrom.getText().toString(); to = mETdumpto.getText().toString(); if ( from == null || from.length() == 0 ) { error = mParent.getResources().getString( R.string.error_begin_required ); mETdumpfrom.setError( error ); return; } if ( to == null || to.length() == 0 ) { error = mParent.getResources().getString( R.string.error_end_required ); mETdumpto.setError( error ); return; } try { ht[0] = Integer.parseInt( from ); } catch ( NumberFormatException e ) { error = mParent.getResources().getString( R.string.error_invalid_number ); mETdumpfrom.setError( error ); return; } try { ht[1] = Integer.parseInt( to ); } catch ( NumberFormatException e ) { error = mParent.getResources().getString( R.string.error_invalid_number ); mETdumpto.setError( error ); return; } if ( ht[0] < 0 ) ht[0] = 0; if ( ht[1] > MAX_ADDRESS_X310 ) ht[1] = MAX_ADDRESS_X310; if ( ht[0] < ht[1] ) { String file = null; if ( mETdumpfile.getText() != null ) file = mETdumpfile.getText().toString(); mParent.readX310Memory( this, ht, file ); } break; // case R.id.button_cancel: // dismiss(); // break; } } // void askReset( final int ht[] ) // { // TopoDroidAlertDialog.makeAlert( mParent, mParent.getResources(), R.string.ask_reset, // new DialogInterface.OnClickListener() { // @Override // public void onClick( DialogInterface dialog, int btn ) { // mParent.resetX310DeviceHeadTail( ht ); // // finish(); // } // } // ); // } }