[Demonstration 1]

[Buggy Method]
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainactivity);
    preferences = getSharedPreferences("ini", Context.MODE_PRIVATE);
    pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(new PageAdapter(getSupportFragmentManager()));
    pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int ind) {
            getSupportActionBar().setSelectedNavigationItem(ind);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    });
    ActionBar ab = getSupportActionBar();
    ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    // Create a tab listener that is called when the user changes tabs.
    ActionBar.TabListener tabListener = new ActionBar.TabListener() {

        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            // When the tab is selected, switch to the
            // corresponding page in the ViewPager.
            pager.setCurrentItem(tab.getPosition());
            PageAdapter pa = (PageAdapter) pager.getAdapter();
            PageFragment pf = (PageFragment) pa.getItem(tab.getPosition());
            pf.onSelect();
        }

        @Override
        public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            pager.setCurrentItem(tab.getPosition());
            PageAdapter pa = (PageAdapter) pager.getAdapter();
            PageFragment pf = (PageFragment) pa.getItem(tab.getPosition());
            pf.onUnselect();
        }
    };
    ActionBar.Tab tab;
    tab = ab.newTab();
    //tab.setText(getText(R.string.setup));
    tab.setIcon(R.drawable.gearwheeltab);
    tab.setTabListener(tabListener);
    ab.addTab(tab);
    tab = ab.newTab();
    //tab.setText(getText(R.string.play));
    tab.setIcon(R.drawable.playtab);
    tab.setTabListener(tabListener);
    ab.addTab(tab);
    int pos = preferences.getInt(currentTab, 0);
    if (pos < 0 || pos >= ab.getNavigationItemCount())
        pos = 0;
    ab.setSelectedNavigationItem(pos);
    onNewIntent(getIntent());
    BlueToothService.checkService(this);
}

[Buggy Hunk]
preferences=getSharedPreferences("ini",Context.MODE_PRIVATE );

[Patch]
preferences=getApplicationContext().getSharedPreferences("ini",Context.MODE_PRIVATE );

[Demonstration 2]

[Buggy Method]
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (!isEnabled() || canChildScrollUp() || refreshBehavior == null) {
        return false;
    }
    addVelocityTracker(ev);
    int action = ev.getActionMasked();
    switch(action) {
        case MotionEvent.ACTION_DOWN:
            {
                onMoveDown(ev);
                onActionDown();
                break;
            }
        case MotionEvent.ACTION_POINTER_DOWN:
            {
                onSecondaryPointerDown(ev);
                break;
            }
        case MotionEvent.ACTION_MOVE:
            {
                int index = ev.findPointerIndex(activePointerId);
                if (index < 0) {
                    return false;
                }
                float x = ev.getX(index);
                float y = ev.getY(index);
                float diffX = x - initialMotionX;
                float diffY = y - initialMotionY;
                if (!isBeginDragged && Math.abs(diffY) > Math.abs(diffX) && (//move down
                diffY > touchSlop || (!refreshingPinHeader && scrollDistance > 0 && -diffY > touchSlop))) {
                    isBeginDragged = true;
                }
                lastTouchY = y;
                break;
            }
        case MotionEvent.ACTION_POINTER_UP:
            {
                onSecondaryPointerUp(ev);
                break;
            }
        case MotionEvent.ACTION_UP:
        case MotionEvent.ACTION_CANCEL:
            recyclerVelocityTracker();
            isBeginDragged = false;
            activePointerId = INVALID_POINTER;
            break;
    }
    return isBeginDragged;
}

[Buggy Hunk]
if (!isEnabled() || canChildScrollUp() || refreshBehavior == null) {

[Patch]
if (!refreshEnable || !isEnabled() || canChildScrollUp() || refreshBehavior == null) {

[Demonstration 3]

[Buggy Method]
@Override
public void update(float deltaTime) {
    //        debugRenderer.render(world, debugCamera.combined);
    world.step(deltaTime, 6, 2);
    int length = entities.size();
    Body body;
    TransformComponent transform;
    int type;
    Vector2 velocity;
    float velocityValue;
    Entity entity;
    for (int i = 0; i < length; ++i) {
        entity = entities.get(i);
        body = ComponentMappers.PHYSIC.get(entity).body;
        type = ComponentMappers.TYPE.get(entity).type;
        if (type != GameObjectType.TYPE_PLAYER) {
            velocity = body.getLinearVelocity().cpy();
            velocityValue = velocity.len();
            if (velocityValue == 0) {
                velocity.x = 10;
                velocity.rotate(MathUtils.random() * 360);
                body.setLinearVelocity(velocity);
            } else if (velocityValue < 10) {
                velocity.set(velocity.x * 1.03f, velocity.y * 1.03f);
                body.setLinearVelocity(velocity);
            }
        }
        transform = ComponentMappers.TRANSFORM.get(entity);
        transform.position = body.getPosition().sub(transform.origin);
        transform.rotation = body.getAngle() * MathUtils.radiansToDegrees;
        int screenOffset = (type == GameObjectType.TYPE_PLAYER) ? 50 : 0;
        if (transform.position.x < -screenOffset || transform.position.x > 800 + screenOffset || transform.position.y < -screenOffset || transform.position.y > 600 + screenOffset)
            engine.removeEntity(entity);
    }
}

[Buggy Hunk]
int screenOffset = (type == GameObjectType.TYPE_PLAYER) ? 50 : 0;

[Patch]
int screenOffset = (type == GameObjectType.TYPE_PLAYER) ? 50 : 100;