EMMA Coverage Report (generated Thu Mar 30 10:27:42 CEST 2017)
[all classes][net.mandaria.tippytipper.preferences]

COVERAGE SUMMARY FOR SOURCE FILE [SeekBarPreference.java]

nameclass, %method, %block, %line, %
SeekBarPreference.java100% (1/1)38%  (5/13)84%  (228/272)75%  (45.1/60)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SeekBarPreference100% (1/1)38%  (5/13)84%  (228/272)75%  (45.1/60)
getMax (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getMin (): int 0%   (0/1)0%   (0/3)0%   (0/1)
getProgress (): int 0%   (0/1)0%   (0/3)0%   (0/1)
onStartTrackingTouch (SeekBar): void 0%   (0/1)0%   (0/1)0%   (0/1)
onStopTrackingTouch (SeekBar): void 0%   (0/1)0%   (0/1)0%   (0/1)
setMax (int): void 0%   (0/1)0%   (0/4)0%   (0/1)
setMin (int): void 0%   (0/1)0%   (0/4)0%   (0/1)
setProgress (int): void 0%   (0/1)0%   (0/11)0%   (0/4)
onSetInitialValue (boolean, Object): void 100% (1/1)60%  (18/30)52%  (4.2/8)
onProgressChanged (SeekBar, int, boolean): void 100% (1/1)95%  (37/39)98%  (5.9/6)
SeekBarPreference (Context, AttributeSet): void 100% (1/1)100% (55/55)100% (11/11)
onBindDialogView (View): void 100% (1/1)100% (17/17)100% (4/4)
onCreateDialogView (): View 100% (1/1)100% (101/101)100% (20/20)

1package net.mandaria.tippytipper.preferences;
2 
3/* The following code was written by Matthew Wiggins 
4 * and is released under the APACHE 2.0 license 
5 * 
6 * http://www.apache.org/licenses/LICENSE-2.0
7 */
8 
9import net.mandaria.tippytipper.*;
10import android.content.Context;
11import android.util.AttributeSet;
12import android.view.Gravity;
13import android.view.View;
14import android.view.ViewGroup.LayoutParams;
15import android.preference.DialogPreference;
16import android.widget.SeekBar;
17import android.widget.TextView;
18import android.widget.LinearLayout;
19import android.content.res.*;
20 
21public class SeekBarPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener
22{
23  private static final String androidns="http://schemas.android.com/apk/res/android";
24  private static final String appns="http://schemas.android.com/apk/res/net.mandaria.tippytipper";
25 
26  private SeekBar mSeekBar;
27  private TextView mSplashText,mValueText;
28  private Context mContext;
29 
30  private String mDialogMessage, mSuffix;
31  private int mDefault, mMax, mMin, mValue = 0;
32 
33  public SeekBarPreference(Context context, AttributeSet attrs) { 
34    super(context,attrs); 
35    mContext = context;
36 
37    mDialogMessage = attrs.getAttributeValue(androidns,"dialogMessage");
38    mSuffix = attrs.getAttributeValue(androidns,"text");
39    mDefault = attrs.getAttributeIntValue(androidns,"defaultValue", 0);
40    mMax = attrs.getAttributeIntValue(androidns,"max", 100);
41    
42    TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SeekBarPreference);
43    mMin = a.getInt(R.styleable.SeekBarPreference_min, 0);
44    mMax = mMax - mMin;
45  }
46  
47  @Override 
48  protected View onCreateDialogView() {
49    LinearLayout.LayoutParams params;
50    LinearLayout layout = new LinearLayout(mContext);
51    layout.setOrientation(LinearLayout.VERTICAL);
52    layout.setPadding(6,6,6,6);
53 
54    mSplashText = new TextView(mContext);
55    if (mDialogMessage != null)
56      mSplashText.setText(mDialogMessage);
57    layout.addView(mSplashText);
58 
59    mValueText = new TextView(mContext);
60    mValueText.setGravity(Gravity.CENTER_HORIZONTAL);
61    mValueText.setTextSize(32);
62    params = new LinearLayout.LayoutParams(
63        LayoutParams.FILL_PARENT, 
64        LayoutParams.WRAP_CONTENT);
65    layout.addView(mValueText, params);
66 
67    mSeekBar = new SeekBar(mContext);
68    mSeekBar.setOnSeekBarChangeListener(this);
69    layout.addView(mSeekBar, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
70 
71    if (shouldPersist())
72      mValue = getPersistedInt(mDefault);
73 
74    mSeekBar.setMax(mMax);
75    mSeekBar.setProgress(mValue);
76    return layout;
77  }
78  @Override 
79  protected void onBindDialogView(View v) {
80    super.onBindDialogView(v);
81    mSeekBar.setMax(mMax);
82    mSeekBar.setProgress(mValue - mMin);
83  }
84  @Override
85  protected void onSetInitialValue(boolean restore, Object defaultValue)  
86  {
87    super.onSetInitialValue(restore, defaultValue);
88    if (restore) 
89    {
90      try
91      {
92        mValue = shouldPersist() ? getPersistedInt(mDefault) : 0;
93      }
94      catch(Exception ex)
95      {
96              mValue = mDefault;
97      }
98    }
99    else 
100      mValue = (Integer)defaultValue;
101  }
102 
103  public void onProgressChanged(SeekBar seek, int value, boolean fromTouch)
104  {
105    String t = String.valueOf(value + mMin);
106    mValueText.setText(mSuffix == null ? t : t.concat(mSuffix));
107    if (shouldPersist())
108      persistInt(value + mMin);
109    callChangeListener(new Integer(value + mMin));
110  }
111  public void onStartTrackingTouch(SeekBar seek) {}
112  public void onStopTrackingTouch(SeekBar seek) {}
113 
114  public void setMax(int max) { mMax = max; }
115  public int getMax() { return mMax; }
116  
117  public void setMin(int min) {mMin = min;}
118  public int getMin() { return mMin;}
119 
120  public void setProgress(int progress) { 
121    mValue = progress;
122    if (mSeekBar != null)
123      mSeekBar.setProgress(progress); 
124  }
125  public int getProgress() { return mValue; }
126}

[all classes][net.mandaria.tippytipper.preferences]
EMMA 2.0.5312 (C) Vladimir Roubtsov