/* @file CWDActivity.java * * @author marco corvi * @date feb 2015 * * @brief TopoDroid CWD activity * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.io.File; import java.util.List; import java.util.ArrayList; import android.app.Application; import android.app.Activity; import android.os.Bundle; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.widget.TextView; import android.widget.EditText; import android.widget.Button; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.LinearLayout; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.view.KeyEvent; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Toast; import android.util.Log; public class CWDActivity extends Activity implements OnItemClickListener , OnClickListener { private TopoDroidApp mApp; private ListView mList; private EditText mETcwd; private Button mBtnOK; private void setPreference() { String dir_name = mETcwd.getText().toString(); if ( dir_name == null ) return; dir_name.trim(); if ( dir_name.length() == 0 ) return; if ( dir_name.indexOf("/") >= 0 ) { Toast.makeText( this, R.string.bad_cwd, Toast.LENGTH_SHORT ).show(); return; } if ( ! dir_name.startsWith( "TopoDroid" ) ) { dir_name = "TopoDroid-" + dir_name; } TDPath.checkBasePath( dir_name ); // Log.v("DistoX", "dir name <" + dir_name + ">" ); mApp.setCWDPreference( dir_name ); Intent intent = new Intent(); intent.putExtra( TDTag.TOPODROID_CWD, dir_name ); setResult( RESULT_OK, intent ); } public void updateDisplay( ) { File[] dirs = TDPath.getTopoDroidFiles(); ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, R.layout.menu ); for ( File item : dirs ) { adapter.add( item.getName() ); } mList.setAdapter( adapter ); mList.setOnItemClickListener( this ); mList.setDividerHeight( 2 ); mETcwd.setText( mApp.mCWD ); } // --------------------------------------------------------------- // list items click @Override public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { CharSequence item = ((TextView) view).getText(); mETcwd.setText( item ); } @Override public void onClick( View v ) { Button b = (Button)v; if ( b == mBtnOK ) { setPreference(); finish(); } } @Override public void onCreate( Bundle b ) { super.onCreate( b ); setContentView(R.layout.cwd_activity); mApp = (TopoDroidApp) getApplication(); getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN ); mList = (ListView) findViewById( R.id.cwd_list ); mETcwd = (EditText) findViewById( R.id.cwd_text ); mBtnOK = (Button) findViewById( R.id.button_ok ); mBtnOK.setOnClickListener( this ); updateDisplay(); } // @Override // public synchronized void onStop() // { // super.onStop(); // } // @Override // public void onBackPressed() // { // // setPreference(); // finish(); // } @Override public boolean onKeyDown( int code, KeyEvent event ) { switch ( code ) { case KeyEvent.KEYCODE_BACK: // HARDWARE BACK (4) super.onBackPressed(); return true; case KeyEvent.KEYCODE_MENU: // HARDWRAE MENU (82) String help_page = getResources().getString( R.string.CWDActivity ); if ( help_page != null ) UserManualActivity.showHelpPage( this, help_page ); return true; // case KeyEvent.KEYCODE_SEARCH: // case KeyEvent.KEYCODE_VOLUME_UP: // (24) // case KeyEvent.KEYCODE_VOLUME_DOWN: // (25) default: // TDLog.Error( "key down: code " + code ); } return false; } }