Skip to content

Commit

Permalink
Clean up TapStatusFragment.
Browse files Browse the repository at this point in the history
Uses fragment arguments instead of out-of-band
setTapDetails(); resolves a UI issue where the tap details
would be missing after instance state was restored.
  • Loading branch information
mik3y committed May 27, 2014
1 parent 2d63b2a commit b535b90
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 43 deletions.
27 changes: 2 additions & 25 deletions kegtab/src/main/java/org/kegbot/app/HomeActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -162,21 +162,6 @@ public void onCreate(Bundle savedInstanceState) {
mTapStatusPager = (ViewPager) findViewById(R.id.tap_status_pager);
mTapStatusPager.setAdapter(mTapStatusAdapter);
mTapStatusPager.setOffscreenPageLimit(8); // >8 Tap systems are rare
mTapStatusPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
final TapStatusFragment frag = (TapStatusFragment) mTapStatusAdapter.getItem(position);
setFocusedTap(frag.getTapDetail());
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}

@Override
public void onPageScrollStateChanged(int state) {
}
});

CheckinService.requestImmediateCheckin(this);
}
Expand Down Expand Up @@ -271,10 +256,6 @@ public void onVisibleTapListUpdate(VisibleTapsChangedEvent event) {
}
}

if (!mTaps.isEmpty()) {
setFocusedTap(mTaps.get(mTapStatusPager.getCurrentItem()));
}

maybeShowTapWarnings();
}

Expand Down Expand Up @@ -321,10 +302,6 @@ public void onConnectivityChangedEvent(ConnectivityChangedEvent event) {
updateConnectivityAlert(event.isConnected());
}

private void setFocusedTap(KegTap tap) {
Log.d(LOG_TAG, "Set/replaced focused tap: " + tap.getId());
}

/**
* Shows the tap editor for the given tap, prompting for the manager pin if necessary.
*
Expand Down Expand Up @@ -431,8 +408,8 @@ public Fragment getItem(int index) {
if (index >= mTaps.size()) {
Log.wtf(LOG_TAG, "Trying to get fragment " + index + ", current size " + mTaps.size());
}
TapStatusFragment frag = new TapStatusFragment();
frag.setTapDetail(mTaps.get(index));
final KegTap tap = mTaps.get(index);
TapStatusFragment frag = TapStatusFragment.forTap(mTaps.get(index));
return frag;
}

Expand Down
45 changes: 27 additions & 18 deletions kegtab/src/main/java/org/kegbot/app/TapStatusFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,46 +47,57 @@

public class TapStatusFragment extends ListFragment {

private final String TAG = TapStatusFragment.class.getSimpleName();

private static final String TAG = TapStatusFragment.class.getSimpleName();
private static final String ARG_TAP_ID = "tap_id";
private static final int CHILD_INACTIVE = 1;
private static final int CHILD_ACTIVE = 2;

private KegbotCore mCore;

private KegTap mTapDetail;

private ImageDownloader mImageDownloader;

private View mView;

private static final int CHILD_INACTIVE = 1;
private static final int CHILD_ACTIVE = 2;
public static TapStatusFragment forTap(final KegTap tap) {
final TapStatusFragment frag = new TapStatusFragment();
final Bundle args = new Bundle();
args.putInt(ARG_TAP_ID, tap.getId());
frag.setArguments(args);
return frag;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCore = KegbotCore.getInstance(getActivity());
mImageDownloader = mCore.getImageDownloader();
updateTapDetails();
}

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

if (mTapDetail != null) {
setTapDetail(mTapDetail);
}
updateTapDetails();
return mView;
}

public void setTapDetail(final KegTap tap) {
mTapDetail = tap;
private void updateTapDetails() {
if (mView == null) {
return;
}

final Activity activity = getActivity();
if (activity == null) {
return;
}

final KegTap tap;
final int tapId = getTapId();
if (tapId >= 0) {
tap = mCore.getTapManager().getTap(tapId);
} else {
// Tap has gone away?
tap = null;
}

final TextView title = ButterKnife.findById(mView, R.id.tapTitle);
final TextView subtitle = ButterKnife.findById(mView, R.id.tapSubtitle);
final TextView tapNotes = ButterKnife.findById(mView, R.id.tapNotes);
Expand Down Expand Up @@ -179,12 +190,10 @@ public boolean onLongClick(View v) {
} else {
badge3.setVisibility(View.GONE);
}

return;
}

public KegTap getTapDetail() {
return mTapDetail;
private int getTapId() {
return getArguments().getInt(ARG_TAP_ID, -1);
}

}

0 comments on commit b535b90

Please sign in to comment.