/* @file UserManualActivity.java
*
* @author marco corvi
* @date nov 2011
*
* @brief TopoDroid user manual actvity with a webview
* --------------------------------------------------------
* 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.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import android.app.Activity;
// import android.app.Dialog;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent;
import android.content.ActivityNotFoundException;
import android.net.Uri;
import android.widget.TextView;
// import android.widget.Button;
// import android.widget.SlidingDrawer;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.view.View;
import android.view.View.OnClickListener;
// import android.view.View.OnKeyListener;
// import android.view.KeyEvent;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.util.Log;
public class UserManualActivity extends Activity
implements OnItemClickListener, OnClickListener
{
private WebView mTVtext;
private int mCloseOnBack = 0;
private void load( String filename )
{
++mCloseOnBack;
// String filepath = TDPath.getManFile( filename );
// mTVtext.loadUrl( filepath );
mTVtext.loadUrl("file:///android_asset/man/" + filename );
}
private void getManualFromWeb()
{
String manual = getResources().getString( R.string.topodroid_man );
if ( manual.startsWith("http") ) {
try {
startActivity( new Intent( Intent.ACTION_VIEW, Uri.parse( manual )));
} catch ( ActivityNotFoundException e ) {
Toast.makeText( this, R.string.no_manual, Toast.LENGTH_SHORT ).show();
}
}
}
// -------------------------------------------------------------------
// SlidingDrawer mDrawer;
ImageView mImage;
ListView mList;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mCloseOnBack = 0;
// get intent extra
String page = null;
Bundle extras = getIntent().getExtras();
if ( extras != null ) page = extras.getString( TDTag.TOPODROID_HELP_PAGE );
if ( page == null ) page = "manual00.htm";
setContentView(R.layout.distox_manual_dialog);
mTVtext = (WebView) findViewById(R.id.manual_text );
mTVtext.setWebViewClient( new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading( WebView view, String url ) {
++mCloseOnBack;
view.loadUrl( url );
return false;
}
} );
// WebSettings ws = mTVtext.getSettings();
mTVtext.getSettings().setJavaScriptEnabled( false ); // no JS
mTVtext.getSettings().setSupportZoom( true );
setTitle( R.string.title_manual );
load( page );
mImage = (ImageView) findViewById( R.id.handle );
mImage.setOnClickListener( this );
mList = (ListView) findViewById( R.id.content );
ArrayAdapter< String > adapter = new ArrayAdapter<String>(this, R.layout.message );
adapter.add("Preface"); // manual00
adapter.add("1. Introducion");
adapter.add("2. Main window"); // manual04
adapter.add("3. Device window");
adapter.add("4. Calibration window");
adapter.add("5. Calibration data");
adapter.add("6. Survey data");
adapter.add("7. Shot list");
adapter.add("8. Survey info"); // manual09
adapter.add("9. Sketch window");
adapter.add("10. Sketch drawing");
adapter.add("11. Cross-sections");
adapter.add("12. Overview window");
adapter.add("13. Import/Export");
adapter.add("14. Index");
adapter.add("* Website");
mList.setAdapter( adapter );
mList.setVisibility( View.GONE );
mList.invalidate();
mList.setOnItemClickListener( this );
}
@Override
public void onClick(View v)
{
// When the user clicks, just finish this activity.
// onPause will be called, and we save our data there.
ImageView b = (ImageView) v;
if ( b == mImage ) {
if ( mList.getVisibility() == View.VISIBLE ) {
mList.setVisibility( View.GONE );
} else {
mList.setVisibility( View.VISIBLE );
}
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos, long id)
{
CharSequence item = ((TextView) view).getText();
// Log.v("DistoX", "click " + item + " pos " + pos);
mList.setVisibility( View.GONE );
if ( pos <= 14 ) {
mCloseOnBack = 0;
load( String.format( "manual%02d.htm", pos ) );
} else {
getManualFromWeb();
}
}
@Override
public void onBackPressed()
{
if ( (-- mCloseOnBack) == 0 ) finish();
mTVtext.goBack();
}
// static void show Help Page( Context context, int class_string )
// {
// Intent intent = new Intent( Intent.ACTION_VIEW );
// intent.setClass( context, UserManualActivity.class );
// String page = context.getResources().getString( class_string );
// if ( page != null ) {
// intent.putExtra( TDTag.TOPODROID_HELP_PAGE, page );
// }
// context.startActivity( intent );
// }
static void showHelpPage( Context context, String page )
{
// if ( page == null ) return;
Intent intent = new Intent( Intent.ACTION_VIEW );
intent.setClass( context, UserManualActivity.class );
intent.putExtra( TDTag.TOPODROID_HELP_PAGE, page );
context.startActivity( intent );
}
}