/* @file PtCmapActivity.java * * @author marco corvi * @date sept 2015 * * @brief TopoDroid PocketTopo colormap 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.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.view.KeyEvent; import android.widget.Toast; import android.util.Log; public class PtCmapActivity extends Activity implements OnClickListener { private TopoDroidApp mApp; static String mCmapLine[] = { "wall", "border", "pit", "rock-border", "arrow", "contour", "user" }; static String mCmapPoint[] = { "air-draught", "water-flow", "stalactite", "blocks", "debris", "pebbles", "clay" }; private EditText mETline[]; private EditText mETpoint[]; private Button mBtOk; static String getLineThName( int k ) { if ( k < 1 || k > 7 ) return "user"; return mCmapLine[k-1]; } static String getPointThName( int k ) { if ( k < 1 || k > 7 ) return "user"; return mCmapPoint[k-1]; } static void setMap( String cmap ) { if ( cmap == null ) return; String vals[] = cmap.split(" "); if ( vals.length < 14 ) return; for ( int k=0; k<7; ++k ) { mCmapLine[k] = vals[k]; mCmapPoint[k] = vals[7+k]; } } private boolean setPreference() { StringBuilder sb = new StringBuilder(); for ( int k=0; k<7; ++k ) { String txt = mETline[k].getText().toString().trim(); if ( ! BrushManager.mLineLib.hasSymbolByThName( txt ) ) { mETline[k].setError( getResources().getString( R.string.bad_line ) ); return false; } if ( k > 0 ) sb.append( " " ); sb.append( txt ); } for ( int k=0; k<7; ++k ) { String txt = mETpoint[k].getText().toString().trim(); if ( ! BrushManager.mPointLib.hasSymbolByThName( txt ) ) { mETpoint[k].setError( getResources().getString( R.string.bad_point ) ); return false; } sb.append( " " ); sb.append( txt ); } String cmap = sb.toString(); mApp.setPtCmapPreference( cmap ); Intent intent = new Intent(); intent.putExtra( TDTag.TOPODROID_CMAP, cmap ); setResult( RESULT_OK, intent ); return true; } // --------------------------------------------------------------- // list items click @Override public void onCreate( Bundle b ) { super.onCreate( b ); setContentView(R.layout.pt_cmap_activity); mApp = (TopoDroidApp) getApplication(); getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN ); ((Button) findViewById( R.id.btn0 ) ).setBackgroundColor( 0xff333333 ); ((Button) findViewById( R.id.btn1 ) ).setBackgroundColor( 0xff999999 ); ((Button) findViewById( R.id.btn2 ) ).setBackgroundColor( 0xff996633 ); ((Button) findViewById( R.id.btn3 ) ).setBackgroundColor( 0xff0000ff ); ((Button) findViewById( R.id.btn4 ) ).setBackgroundColor( 0xffff0000 ); ((Button) findViewById( R.id.btn5 ) ).setBackgroundColor( 0xff00ff00 ); ((Button) findViewById( R.id.btn6 ) ).setBackgroundColor( 0xffffff00 ); mETline = new EditText[7]; mETpoint = new EditText[7]; mETline[0] = (EditText) findViewById( R.id.etline0 ); mETline[1] = (EditText) findViewById( R.id.etline1 ); mETline[2] = (EditText) findViewById( R.id.etline2 ); mETline[3] = (EditText) findViewById( R.id.etline3 ); mETline[4] = (EditText) findViewById( R.id.etline4 ); mETline[5] = (EditText) findViewById( R.id.etline5 ); mETline[6] = (EditText) findViewById( R.id.etline6 ); mETline[0].setText( mCmapLine[0] ); mETline[1].setText( mCmapLine[1] ); mETline[2].setText( mCmapLine[2] ); mETline[3].setText( mCmapLine[3] ); mETline[4].setText( mCmapLine[4] ); mETline[5].setText( mCmapLine[5] ); mETline[6].setText( mCmapLine[6] ); mETpoint[0] = (EditText) findViewById( R.id.etpoint0 ); mETpoint[1] = (EditText) findViewById( R.id.etpoint1 ); mETpoint[2] = (EditText) findViewById( R.id.etpoint2 ); mETpoint[3] = (EditText) findViewById( R.id.etpoint3 ); mETpoint[4] = (EditText) findViewById( R.id.etpoint4 ); mETpoint[5] = (EditText) findViewById( R.id.etpoint5 ); mETpoint[6] = (EditText) findViewById( R.id.etpoint6 ); mETpoint[0].setText( mCmapPoint[0] ); mETpoint[1].setText( mCmapPoint[1] ); mETpoint[2].setText( mCmapPoint[2] ); mETpoint[3].setText( mCmapPoint[3] ); mETpoint[4].setText( mCmapPoint[4] ); mETpoint[5].setText( mCmapPoint[5] ); mETpoint[6].setText( mCmapPoint[6] ); mBtOk = (Button) findViewById( R.id.button_ok ); mBtOk.setOnClickListener( this ); } // @Override // public synchronized void onStop() // { // super.onStop(); // } @Override public void onClick( View v ) { if ( (Button)v == mBtOk ) { if ( setPreference() ) { finish(); } } } // @Override // public void onBackPressed() // { // finish(); // } @Override public boolean onKeyDown( int code, KeyEvent event ) { switch ( code ) { case KeyEvent.KEYCODE_BACK: // HARDWARE BACK (4) onBackPressed(); return true; case KeyEvent.KEYCODE_MENU: // HARDWRAE MENU (82) String help_page = getResources().getString( R.string.PtCmapActivity ); 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; } }