Skip to content

Instantly share code, notes, and snippets.

View kmdupr33's full-sized avatar

Matt Dupree kmdupr33

View GitHub Profile
private class ArrayFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence prefix) {
FilterResults results = new FilterResults();
if (prefix == null || prefix.length() == 0) {
ArrayList<T> list;
synchronized (mLock) {
list = new ArrayList<T>(mOriginalValues);
}
private class ArrayFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence prefix) {
FilterResults results = new FilterResults();
if (prefix == null || prefix.length() == 0) {
ArrayList<T> list = new ArrayList<T>(mOriginalValues);
results.values = list;
results.count = list.size();
@kmdupr33
kmdupr33 / SessionDetailActivity.java
Last active August 29, 2015 14:24
multiple responsibiliies
public class SessionDetailActivity extends BaseActivity implements
LoaderManager.LoaderCallbacks<Cursor>,
ObservableScrollView.Callbacks {
//...
@Override
protected void onCreate(Bundle savedInstanceState) {
//Responsibility 1: Responding to user's action (in this case, a click)
mAddScheduleButton.setOnClickListener(new View.OnClickListener() {
mAddScheduleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean starred = !mStarred;
SessionsHelper helper = new SessionsHelper(SessionDetailActivity.this);
showStarred(starred, true);
helper.setSessionStarred(mSessionUri, starred, mTitleString);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
mAddScheduleButton.announceForAccessibility(starred ?
getString(R.string.session_details_a11y_session_added) :
@kmdupr33
kmdupr33 / MyActivity.java
Created July 7, 2015 17:04
Illustrates that circular dependencies usually don't seem like a problem because the system instantiates activities
public class MyActivity extends Activity implements MVPView {
View mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse_sessions);
//...
final Presenter presenter = new Presenter(this);
@kmdupr33
kmdupr33 / MyActivity.java
Last active August 29, 2015 14:24
snippet demoing construting object in invalid state
public class MyActivity extends Activity implements MVPView {
View mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse_sessions);
//...
final Presenter presenter = new Presenter();
@kmdupr33
kmdupr33 / MainActivity.java
Created July 9, 2015 19:03
Showing the terrible practice of having a static reference to a context
public class MainActivity extends LocationManagingActivity implements ActionBar.OnNavigationListener,
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener {
//...
private static MeTrackerStore mMeTrackerStore;
//...
@kmdupr33
kmdupr33 / DefineGeofencesActivity.java
Created July 9, 2015 19:23
implicit reference problem
public class DefineGeofenceFragment extends Fragment {
public class GetLatAndLongAndUpdateMapCameraAsyncTask extends AsyncTask<String, Void, LatLng> {
@Override
protected LatLng doInBackground(String... params) {
//...
try {
//Here we make the http request for the place search suggestions
httpResponse = httpClient.execute(httpPost);
HttpEntity entity = httpResponse.getEntity();
@kmdupr33
kmdupr33 / TotalActivityTimeViewPagerHost.java
Created July 9, 2015 20:06
Shows what can happen when you don't use code style settings
public ViewPager getmViewPager() {
return mViewPager;
}
@kmdupr33
kmdupr33 / ServiceLauncherTests.java
Created July 14, 2015 14:36
Showing how easy it is to unit test when context has been injected
public class ServiceLauncherTests {
@Mock
Context mContext;
@Test
public void launchesSessionCalendarService() {
ServiceLauncher serviceLauncher = new ServiceLauncher(mContext);
serviceLauncher.launchSessionCalendarService();
verify(mContext).startService(any(Intent.class));