rpicms-android

Android app for the RPICMS.
git clone git://archive.git.mtrnord.blog/RpicmsTeam/rpicms-android.git
Log | Files | Refs

LogFragment.java (2920B)


      1 package de.nordgedanken.rpicms.common.logger;
      2 
      3 /**
      4  * Created by frank on 14.10.14.
      5  */
      6 import android.graphics.Typeface;
      7 import android.os.Bundle;
      8 import android.support.v4.app.Fragment;
      9 import android.text.Editable;
     10 import android.text.TextWatcher;
     11 import android.view.Gravity;
     12 import android.view.LayoutInflater;
     13 import android.view.View;
     14 import android.view.ViewGroup;
     15 import android.widget.ScrollView;
     16 
     17 public class LogFragment extends Fragment {
     18 
     19     /**
     20      * Simple fraggment which contains a LogView and uses is to output log data it receives
     21      * through the LogNode interface.
     22      */
     23 
     24 
     25         private LogView mLogView;
     26         private ScrollView mScrollView;
     27 
     28         public LogFragment() {}
     29 
     30         public View inflateViews() {
     31             mScrollView = new ScrollView(getActivity());
     32             ViewGroup.LayoutParams scrollParams = new ViewGroup.LayoutParams(
     33                     ViewGroup.LayoutParams.MATCH_PARENT,
     34                     ViewGroup.LayoutParams.MATCH_PARENT);
     35             mScrollView.setLayoutParams(scrollParams);
     36 
     37             mLogView = new LogView(getActivity());
     38             ViewGroup.LayoutParams logParams = new ViewGroup.LayoutParams(scrollParams);
     39             logParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
     40             mLogView.setLayoutParams(logParams);
     41             mLogView.setClickable(true);
     42             mLogView.setFocusable(true);
     43             mLogView.setTypeface(Typeface.MONOSPACE);
     44 
     45             // Want to set padding as 16 dips, setPadding takes pixels.  Hooray math!
     46             int paddingDips = 16;
     47             double scale = getResources().getDisplayMetrics().density;
     48             int paddingPixels = (int) ((paddingDips * (scale)) + .5);
     49             mLogView.setPadding(paddingPixels, paddingPixels, paddingPixels, paddingPixels);
     50             mLogView.setCompoundDrawablePadding(paddingPixels);
     51 
     52             mLogView.setGravity(Gravity.BOTTOM);
     53             mLogView.setTextAppearance(getActivity(), android.R.style.TextAppearance_Holo_Medium);
     54 
     55             mScrollView.addView(mLogView);
     56             return mScrollView;
     57         }
     58 
     59         @Override
     60         public View onCreateView(LayoutInflater inflater, ViewGroup container,
     61                                  Bundle savedInstanceState) {
     62 
     63             View result = inflateViews();
     64 
     65             mLogView.addTextChangedListener(new TextWatcher() {
     66                 @Override
     67                 public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
     68 
     69                 @Override
     70                 public void onTextChanged(CharSequence s, int start, int before, int count) {}
     71 
     72                 @Override
     73                 public void afterTextChanged(Editable s) {
     74                     mScrollView.fullScroll(ScrollView.FOCUS_DOWN);
     75                 }
     76             });
     77             return result;
     78         }
     79 
     80         public LogView getLogView() {
     81             return mLogView;
     82         }
     83 
     84 
     85 
     86 }