in.rab.bildkort.DefinitionFragment.java Source code

Java tutorial

Introduction

Here is the source code for in.rab.bildkort.DefinitionFragment.java

Source

/*
 * Copyright (c) 2016 Rabin Vincent
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package in.rab.bildkort;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.EditText;

public class DefinitionFragment extends Fragment {
    private EditText mEditText;

    public DefinitionFragment() {
    }

    public static DefinitionFragment newInstance(String definition, Boolean isHtml) {
        DefinitionFragment fragment = new DefinitionFragment();
        Bundle args = new Bundle();
        args.putString("definition", definition);
        args.putBoolean("isHtml", isHtml);
        fragment.setArguments(args);
        return fragment;
    }

    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        String definition = getArguments().getString("definition");
        Boolean isHtml = getArguments().getBoolean("isHtml");

        mEditText = (EditText) getView().findViewById(R.id.editText);
        WebView webView = (WebView) getView().findViewById(R.id.webView);

        if (isHtml) {
            // Anki centers text by default, which is not optimal for large HTML
            // chunks such as those we get from NE.
            definition = "<div style=\"text-align: left\">" + definition + "</div>";

            mEditText.setVisibility(View.GONE);
            webView.setVisibility(View.VISIBLE);
        } else {
            mEditText.setVisibility(View.VISIBLE);
            webView.setVisibility(View.GONE);
        }

        mEditText.setText(definition);
        webView.loadDataWithBaseURL("http://fake", definition, "text/html", "UTF-8", null);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_definition, container, false);
    }

    public String getText() {
        return mEditText.getText().toString();
    }
}