io.syng.fragment.ConsoleFragment.java Source code

Java tutorial

Introduction

Here is the source code for io.syng.fragment.ConsoleFragment.java

Source

/*
 * Copyright (c) 2015 Jarrad Hope
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

package io.syng.fragment;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.text.method.ScrollingMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.squareup.leakcanary.RefWatcher;

import org.ethereum.android.service.ConnectorHandler;
import org.ethereum.android.service.events.EventFlag;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.EnumSet;
import java.util.UUID;

import io.syng.R;
import io.syng.app.SyngApplication;

public class ConsoleFragment extends Fragment implements OnClickListener {

    private static final String ACTION_RECEIVE = "dapp://syng.io/dapps/wallet/#/tab/receive";
    private static final String ACTION_SEND = "dapp://syng.io/dapps/wallet/#/tab/send/";

    private final static int CONSOLE_LENGTH = 10000;
    private final static int CONSOLE_REFRESH_MILLS = 1000 * 5; //5 sec

    private TextView mConsoleText;

    private Handler mHandler = new Handler();

    private Runnable mRunnable = new Runnable() {
        @Override
        public void run() {

            int length = SyngApplication.mConsoleLog.length();
            if (length > CONSOLE_LENGTH) {
                SyngApplication.mConsoleLog = SyngApplication.mConsoleLog
                        .substring(CONSOLE_LENGTH * ((length / CONSOLE_LENGTH) - 1) + length % CONSOLE_LENGTH);
            }
            mConsoleText.setText(SyngApplication.mConsoleLog);

            mHandler.postDelayed(mRunnable, CONSOLE_REFRESH_MILLS);
        }
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_console, container, false);

        mConsoleText = (TextView) view.findViewById(R.id.tv_console_log);
        mConsoleText.setText(SyngApplication.mConsoleLog);
        mConsoleText.setMovementMethod(new ScrollingMovementMethod());

        ImageView background = (ImageView) view.findViewById(R.id.iv_background);
        Glide.with(this).load(R.drawable.console_bg).into(background);

        view.findViewById(R.id.fab_send).setOnClickListener(this);
        view.findViewById(R.id.fab_receive).setOnClickListener(this);

        return view;
    }

    @Override
    public void onPause() {
        super.onPause();
        mHandler.removeCallbacksAndMessages(null);
    }

    @Override
    public void onResume() {
        super.onResume();
        mHandler.post(mRunnable);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        RefWatcher refWatcher = SyngApplication.getRefWatcher(getActivity());
        refWatcher.watch(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.fab_send:
            Intent intent1 = new Intent(Intent.ACTION_VIEW);
            intent1.setData(Uri.parse(ACTION_SEND));
            if (intent1.resolveActivity(getActivity().getPackageManager()) != null) {
                startActivity(intent1);
            }
            break;
        case R.id.fab_receive:
            Intent intent2 = new Intent(Intent.ACTION_VIEW);
            intent2.setData(Uri.parse(ACTION_RECEIVE));
            if (intent2.resolveActivity(getActivity().getPackageManager()) != null) {
                startActivity(intent2);
            }
            break;
        }
    }
}