Skip to content

Instantly share code, notes, and snippets.

View nontravis's full-sized avatar

Nonthawit Doungsodsri nontravis

View GitHub Profile
//In Fragment
@Override
public void onCreate( @Nullable Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
...
if( savedInstanceState != null ){
onRestoreInstanceState( savedInstanceState ); // Restore Instance State here
@nontravis
nontravis / BaseViewGroup.java
Last active January 18, 2017 14:49
BaseViewGroup_override_method
abstract public class BaseViewGroup extends FrameLayout{
...
@Override
protected void dispatchSaveInstanceState( SparseArray<Parcelable> container ){
dispatchFreezeSelfOnly( container );
}
@Override
@nontravis
nontravis / BaseViewGroup.java
Created January 18, 2017 14:51
BaseViewGroup_override_method
abstract public class BaseViewGroup extends FrameLayout{
...
@Override
protected void onRestoreInstanceState(Parcelable state) {
if (!(state instanceof ChildSavedState)) {
super.onRestoreInstanceState(state);
return;
}
@nontravis
nontravis / BaseViewGroup.java
Created January 18, 2017 14:59
BaseViewGroup_ChildSavedState
abstract public class BaseViewGroup extends FrameLayout{
...
public static abstract class ChildSavedState extends BaseSavedState{
SparseArray childrenStates;
public ChildSavedState( Parcelable superState ){
super( superState );
}
@nontravis
nontravis / SwitchViewGroup.java
Last active January 18, 2017 15:04
SwitchViewGroup_savedstate
public class SwitchViewGroup extends BaseViewGroup{
...
@Override
public Parcelable onSaveInstanceState(){
Parcelable superState = super.onSaveInstanceState();
// Must call
SavedState ss = (SavedState) onSaveInstanceChildState( new SavedState( superState ) );
//save data here
return ss;
@nontravis
nontravis / SwitchViewGroup.java
Created January 18, 2017 15:14
SwitchViewGroup_savestate
public class SwitchViewGroup extends BaseViewGroup{
...
private static class SavedState extends ChildSavedState{
SavedState( Parcelable superState ){
super( superState );
}
private SavedState( Parcel in, ClassLoader classLoader ){
super( in, classLoader );
@nontravis
nontravis / MainActivityForTest.java
Last active February 19, 2017 07:37
Example_MainActivity
class MainActivity extends Activity{
public void calculateSomeValue(int value){
int result = getPresenter().calculate(value);
if(result > 0){
// some logic 1
}else if(result < 0){
// some logic 2
}else{
@nontravis
nontravis / MainActivityUnitTest.java
Last active February 19, 2017 10:57
Example_MainActivityUnitTest
@RunWith(AndroidJUnit4.class)
@LargeTest
class MainActivityUnitTest{
@Before
public void setup(){
...
}
@Test
@nontravis
nontravis / MainPresenterForTest.java
Last active February 19, 2017 08:13
Example_MainPresenter_for_test
class MainPresenter{
public int calculate(int value){
// some logic
...
}
public void clickGotoSecondActivity(){
// some logic
...
@nontravis
nontravis / MainPresenterUnitTest.java
Created February 19, 2017 08:17
Example_MainPresenterUnitTest
@RunWith(JUnit4.class)
class MainPresenterUnitTest{
@Before
public void setup(){
...
}
@Test
public void calculate(){