package com.androidexperiments.landmarker.widget; import android.content.Context; import android.graphics.Paint; import android.util.AttributeSet; import android.webkit.WebView; import android.widget.RelativeLayout; import android.widget.TextView; import com.google.creativelabs.androidexperiments.typecompass.R; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; /** * View with about info and licenses */ public class InfoView extends RelativeLayout { @InjectView(R.id.info_licenses_text_view) TextView mLicensesTextView; @InjectView(R.id.info_licenses_web_view) WebView mLicenseWebview; public InfoView(Context context) { super(context); } public InfoView(Context context, AttributeSet attrs) { super(context, attrs); } public InfoView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onFinishInflate() { super.onFinishInflate(); ButterKnife.inject(this, this); setupText(); setupWebView(); } private void setupWebView() { InputStream is = getResources().openRawResource(R.raw.licenses_landmarker); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder builder = new StringBuilder(); String line = null; try { while((line = reader.readLine()) != null){ builder.append(line); } reader.close(); } catch (IOException e) { e.printStackTrace(); } mLicenseWebview.loadData(builder.toString(), "text/html", null); //is my system fucked? this wont work AT ALL yet works fine in //lipflip - maybe something with using schema from inside a view rather than //inside activity? // mLicenseWebview.loadUrl("file:///android_res/raw/licenses_landmarker.html"); } private void setupText() { mLicensesTextView.setPaintFlags(mLicensesTextView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); } @OnClick(R.id.info_close_btn) public void onClickClose() { this.setVisibility(GONE); hideWebView(); } @OnClick(R.id.info_licenses_text_view) public void onClickLicensesButton() { mLicenseWebview.setVisibility(VISIBLE); } public boolean isWebViewShowing() { return mLicenseWebview.getVisibility() == VISIBLE; } public void hideWebView() { mLicenseWebview.setVisibility(GONE); } }