import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
-import android.content.res.AssetManager;
-import android.graphics.BitmapFactory;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.VectorDrawable;
-import android.net.Uri;
import android.os.IBinder;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
+import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
-import android.support.v7.widget.DividerItemDecoration;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
import android.util.Log;
-import android.util.TypedValue;
-import android.view.View;
-import android.view.ViewGroup;
+import android.view.Menu;
+import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
-import android.widget.Button;
+import android.widget.Chronometer;
+import android.widget.SearchView;
import android.widget.Toast;
-import org.eclipse.paho.client.mqttv3.IMqttMessageListener;
-
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
public class HandbookActivity extends AppCompatActivity {
public static final String HAND_FILE_NAME = "handbook.html";
private static final String TAG = "CtFwSHandbook";
+ private CtFwSDisplayTinyChrono mTitleChronoObs;
private WebView mWV;
private void display() {
};
private MainService.LocalBinder mSrvBinder;
+
+ private void doRegisterObservers() {
+ mSrvBinder.registerObserver(mSrvObs);
+ if (mTitleChronoObs != null) {
+ mSrvBinder.getGameState().registerObserver(mTitleChronoObs);
+ }
+ }
+
private final ServiceConnection ctfwssc = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mSrvBinder = (MainService.LocalBinder) service;
- mSrvBinder.registerObserver(mSrvObs);
+ doRegisterObservers();
mSrvBinder.connect(false);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_handbook);
+ ActionBar ab = getSupportActionBar();
+ if (ab != null) {
+ ab.setTitle(R.string.app_name_hand_title);
+ }
+
mWV = findViewById(R.id.hand_wv);
WebSettings wvs = mWV.getSettings();
wvs.setBuiltInZoomControls(true);
wvs.setDisplayZoomControls(false);
+
+ // mWV.setFindListener()
+
display();
}
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ Log.d(TAG, "onCreateOptionsMenu");
+ getMenuInflater().inflate(R.menu.handmenu, menu);
+
+ Chronometer ch = (Chronometer) menu.findItem(R.id.hand_menu_crono).getActionView();
+ mTitleChronoObs = new CtFwSDisplayTinyChrono(getResources(), ch);
+
+ if (mSrvBinder != null) {
+ doRegisterObservers();
+ }
+
+ SearchView sv = (SearchView) menu.findItem(R.id.hand_menu_search).getActionView();
+ sv.setQueryHint("Search handbook...");
+ sv.setSubmitButtonEnabled(true);
+
+ /*
+ sv.setOnSearchClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Log.d(TAG, "sv.OClickL");
+ }
+ });
+
+ sv.setOnCloseListener(new SearchView.OnCloseListener() {
+ @Override
+ public boolean onClose() {
+ Log.d(TAG, "sv.OCloseL");
+ return false;
+ }
+ });
+ */
+
+ sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ mWV.findNext(true);
+ return false;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ mWV.findAllAsync(newText);
+ return false;
+ }
+ });
+
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.hand_menu_search:
+ return true;
+ }
+
+ return false;
+ }
+
@Override
public void onStart() {
Log.d(TAG, "onStart");
super.onResume();
if (mSrvBinder != null) {
- mSrvBinder.registerObserver(mSrvObs);
+ doRegisterObservers();
}
}
protected void onPause() {
Log.d(TAG, "onPause");
if (mSrvBinder != null) {
+ mSrvBinder.getGameState().unregisterObserver(mTitleChronoObs);
mSrvBinder.unregisterObserver(mSrvObs);
}