Skip to content

Commit 03afdbb

Browse files
author
Andrew Sosa
committed
Version 3.0.1
It’s like…got stuff. Documentation can come later xP
1 parent 4f0d6da commit 03afdbb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+104
-106
lines changed

mobile/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ android {
77
applicationId 'com.hackfsu.android.hackfsu'
88
minSdkVersion 16
99
targetSdkVersion 23
10-
versionCode 1
11-
versionName "1.0"
10+
versionCode 4
11+
versionName "3.0.1"
1212
multiDexEnabled true //enable this
1313

1414
}
15+
1516
buildTypes {
1617
release {
1718
minifyEnabled false

mobile/mobile.iml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@
1212
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
1313
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
1414
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
15-
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
16-
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
1715
<afterSyncTasks>
18-
<task>generateDebugAndroidTestSources</task>
1916
<task>generateDebugSources</task>
2017
</afterSyncTasks>
2118
<option name="ALLOW_USER_CONFIGURATION" value="false" />
@@ -28,7 +25,7 @@
2825
</component>
2926
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
3027
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
31-
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
28+
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
3229
<exclude-output />
3330
<content url="file://$MODULE_DIR$">
3431
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
@@ -50,6 +47,13 @@
5047
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
5148
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
5249
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
50+
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
51+
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
52+
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
53+
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
54+
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
55+
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" />
56+
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
5357
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
5458
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
5559
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
@@ -64,6 +68,13 @@
6468
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
6569
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
6670
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
71+
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
72+
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
73+
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
74+
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
75+
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
76+
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
77+
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
6778
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
6879
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
6980
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
@@ -94,17 +105,17 @@
94105
</content>
95106
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
96107
<orderEntry type="sourceFolder" forTests="false" />
108+
<orderEntry type="library" exported="" name="bolts-tasks-1.4.0" level="project" />
97109
<orderEntry type="library" exported="" name="recyclerview-v7-23.1.1" level="project" />
98110
<orderEntry type="library" exported="" name="support-annotations-23.1.1" level="project" />
99111
<orderEntry type="library" exported="" name="support-v4-23.1.1" level="project" />
100112
<orderEntry type="library" exported="" name="design-23.1.1" level="project" />
101113
<orderEntry type="library" exported="" name="appcompat-v7-23.1.1" level="project" />
102114
<orderEntry type="library" exported="" name="parseui-widget-android-0.0.1" level="project" />
103115
<orderEntry type="library" exported="" name="recyclerview-flexibledivider-1.2.6" level="project" />
104-
<orderEntry type="library" exported="" name="parse-android-1.12.0" level="project" />
105-
<orderEntry type="library" exported="" name="bolts-tasks-1.3.0" level="project" />
106116
<orderEntry type="library" exported="" name="multidex-1.0.1" level="project" />
107117
<orderEntry type="library" exported="" name="cardview-v7-23.1.1" level="project" />
118+
<orderEntry type="library" exported="" name="parse-android-1.13.0" level="project" />
108119
<orderEntry type="library" exported="" scope="TEST" name="multidex-instrumentation-1.0.1" level="project" />
109120
</component>
110121
</module>

mobile/src/main/AndroidManifest.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,18 @@
1515

1616
<uses-permission android:name="com.hackfsu.android.hackfsu.permission.C2D_MESSAGE" />
1717

18+
19+
1820
<application
1921
android:name="com.hackfsu.android.hackfsu.HackFSU"
2022
android:allowBackup="true"
2123
android:icon="@mipmap/ic_launcher"
2224
android:label="@string/app_name"
2325
android:theme="@style/AppTheme">
26+
27+
<meta-data android:name="com.parse.push.notification_icon"
28+
android:resource="@drawable/ic_notification_icon"/>
29+
2430
<activity
2531
android:name="com.hackfsu.android.hackfsu.MainActivity"
2632
android:label="@string/app_name"

mobile/src/main/java/com/hackfsu/android/hackfsu/BaseFragment.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,10 @@
33
import android.support.v4.app.Fragment;
44
import android.support.v7.widget.Toolbar;
55

6-
/**
7-
* Created by andrewsosa on 11/6/15.
8-
*/
6+
97
public class BaseFragment extends Fragment {
108

119

12-
/**
13-
* This interface must be implemented by activities that contain this
14-
* fragment to allow an interaction in this fragment to be communicated
15-
* to the activity and potentially other fragments contained in that
16-
* activity.
17-
* <p/>
18-
* See the Android Training lesson <a href=
19-
* "http://developer.android.com/training/basics/fragments/communicating.html"
20-
* >Communicating with Other Fragments</a> for more information.
21-
*/
2210
public interface OnFragmentInteractionListener {
2311

2412
void registerToolbar(Toolbar toolbar);

mobile/src/main/java/com/hackfsu/android/hackfsu/CustomPushReceiver.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.hackfsu.android.hackfsu;
22

3+
import android.app.Notification;
34
import android.content.Context;
45
import android.content.Intent;
56
import android.content.SharedPreferences;
7+
import android.os.Build;
68

79
import com.parse.ParsePushBroadcastReceiver;
810

@@ -22,4 +24,12 @@ public void onReceive(Context context, Intent intent) {
2224

2325
}
2426

27+
@Override
28+
protected Notification getNotification(Context context, Intent intent) {
29+
Notification notification = super.getNotification(context, intent);
30+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
31+
notification.color = context.getResources().getColor(R.color.hackfsu_red);
32+
}
33+
return notification;
34+
}
2535
}

mobile/src/main/java/com/hackfsu/android/hackfsu/FeedFragment.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,16 @@ public void onActivityCreated(Bundle savedInstanceState) {
115115

116116
// Countdown
117117

118+
initNextTimer();
119+
120+
}
121+
122+
public void initNextTimer() {
123+
118124
Date now = Calendar.getInstance().getTime();
119125

120126
ParseQuery<CountdownItem> query = new ParseQuery<CountdownItem>(ParseName.COUNTDOWNITEM);
127+
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
121128
query.whereGreaterThan(ParseName.COUNTDOWN_TIME, now);
122129
query.getFirstInBackground(new GetCallback<CountdownItem>() {
123130
@Override
@@ -135,6 +142,7 @@ public void done(final CountdownItem object, ParseException e) {
135142
public void onFinish() {
136143
mCountdownTime.setText("HackFSU");
137144
mCountdownLabel.setText("");
145+
initNextTimer();
138146
}
139147

140148
@Override

mobile/src/main/java/com/hackfsu/android/hackfsu/MapsFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void onActivityCreated(Bundle savedInstanceState) {
7878
mRecyclerView.setAdapter(mAdapter);
7979

8080
ParseQuery<MapItem> query = ParseQuery.getQuery(ParseName.MAPITEM);
81-
query.setCachePolicy(ParseQuery.CachePolicy.CACHE_THEN_NETWORK);
81+
query.setCachePolicy(ParseQuery.CachePolicy.CACHE_ELSE_NETWORK);
8282
query.orderByAscending(ParseName.MAP_FLOOR);
8383
query.findInBackground(new FindCallback<MapItem>() {
8484
@Override

mobile/src/main/java/com/hackfsu/android/hackfsu/ScheduleFragment.java

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.hackfsu.android.hackfsu;
22

33
import android.os.Bundle;
4+
import android.support.design.widget.Snackbar;
5+
import android.support.v4.widget.SwipeRefreshLayout;
46
import android.support.v7.widget.LinearLayoutManager;
57
import android.support.v7.widget.RecyclerView;
68
import android.util.Log;
@@ -9,7 +11,6 @@
911
import android.view.ViewGroup;
1012
import android.widget.TextView;
1113

12-
import com.hackfsu.android.hackfsu.R;
1314
import com.parse.FindCallback;
1415
import com.parse.ParseClassName;
1516
import com.parse.ParseException;
@@ -30,11 +31,9 @@ public class ScheduleFragment extends BaseFragment {
3031
RecyclerView mRecyclerView;
3132
LinearLayoutManager mLayoutManager;
3233
ScheduleRecyclerAdapter mAdapter;
34+
SwipeRefreshLayout mSwipeLayout;
3335
View mEmptyView;
3436

35-
final String SCHEDULEITEM = "ScheduleItem";
36-
37-
// TODO: Rename and change types and number of parameters
3837
public static ScheduleFragment newInstance() {
3938
return new ScheduleFragment();
4039
}
@@ -47,8 +46,9 @@ public ScheduleFragment() {}
4746
public View onCreateView(LayoutInflater inflater, ViewGroup container,
4847
Bundle savedInstanceState) {
4948
// Inflate the layout for this fragment
50-
View v = inflater.inflate(R.layout.fragment_list, container, false);
49+
View v = inflater.inflate(R.layout.fragment_list_refresh, container, false);
5150
mRecyclerView = (RecyclerView) v.findViewById(R.id.recycler_view);
51+
mSwipeLayout = (SwipeRefreshLayout) v.findViewById(R.id.refresh_layout);
5252
mEmptyView = v.findViewById(R.id.empty_view);
5353
return v;
5454
}
@@ -84,6 +84,33 @@ public void done(List<ScheduleItem> list, ParseException e) {
8484
}
8585
}
8686
});
87+
88+
89+
// Swipe Reload
90+
mSwipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
91+
@Override
92+
public void onRefresh() {
93+
ParseQuery<ScheduleItem> query = ParseQuery.getQuery(ParseName.SCHEDULEITEM);
94+
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
95+
query.orderByAscending("startTime");
96+
query.findInBackground(new FindCallback<ScheduleItem>() {
97+
@Override
98+
public void done(List<ScheduleItem> list, ParseException e) {
99+
if (e != null) {
100+
Log.e("HackFSU", e.getMessage());
101+
Snackbar.make(mRecyclerView, "Could not refresh.", Snackbar.LENGTH_SHORT)
102+
.show();
103+
} else {
104+
mAdapter.notifyItemRangeRemoved(0, mAdapter.getItemCount());
105+
mAdapter.replaceDataset(list);
106+
mAdapter.notifyItemRangeInserted(0, mAdapter.getItemCount());
107+
}
108+
mSwipeLayout.setRefreshing(false);
109+
}
110+
});
111+
}
112+
});
113+
mSwipeLayout.setColorSchemeResources(R.color.accent);
87114
}
88115

89116
// Adapter used by this fragment
@@ -131,14 +158,15 @@ public void onBindViewHolder(ViewHolder holder, int position) {
131158
// - get element from your dataset at this position
132159
// - replace the contents of the view with that element
133160

161+
// ssshhhh ignore this bit it never got finished
134162
if(mDataset.get(position) instanceof ScheduleDivider) {
135163

136-
holder.mTimeText.setText("Upcoming");
164+
//holder.mTimeText.setText("Upcoming");
137165
holder.mTitleText.setText("");
138166
holder.mSubtitleText.setText("");
139167

140168
} else {
141-
SimpleDateFormat formatter = new SimpleDateFormat("hh:mm a", Locale.US);
169+
SimpleDateFormat formatter = new SimpleDateFormat("EEE hh:mm a", Locale.US);
142170
formatter.setTimeZone(TimeZone.getTimeZone("EST"));
143171
String startTime = formatter.format(mDataset.get(position).getStartTime());
144172

@@ -178,9 +206,9 @@ public ScheduleItem(){
178206

179207
}
180208

181-
public Date getEndTime() {
209+
/*public Date getEndTime() {
182210
return getDate("endTime");
183-
}
211+
}*/
184212

185213
public Date getStartTime() {
186214
return getDate("startTime");
@@ -198,5 +226,7 @@ public String getTitle() {
198226
@ParseClassName("ScheduleDivider")
199227
public static class ScheduleDivider extends ScheduleItem {
200228

229+
// This never got used. IGNORE ME.
230+
201231
}
202232
}

mobile/src/main/java/com/hackfsu/android/hackfsu/SponsorsFragment.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void onActivityCreated(Bundle savedInstanceState) {
7171

7272
// use this setting to improve performance if you know that changes
7373
// in content do not change the layout size of the RecyclerView
74-
mRecyclerView.setHasFixedSize(false);
74+
mRecyclerView.setHasFixedSize(true);
7575

7676
// use a linear layout manager
7777
mLayoutManager = new LinearLayoutManager(getActivity());
@@ -84,15 +84,16 @@ public void onActivityCreated(Bundle savedInstanceState) {
8484

8585
ParseQuery<Sponsor> query = ParseQuery.getQuery(ParseName.SPONSOR);
8686
query.setCachePolicy(ParseQuery.CachePolicy.CACHE_THEN_NETWORK);
87-
query.orderByDescending(ParseName.SPONSOR_LEVEL);
87+
query.orderByAscending(ParseName.SPONSOR_LEVEL);
8888
query.findInBackground(new FindCallback<Sponsor>() {
8989
@Override
9090
public void done(List<Sponsor> list, ParseException e) {
9191
if(e != null) {
9292
Log.e("HackFSU", "Error: " + e.getMessage());
9393
} else {
9494
mAdapter.replaceDataset(list);
95-
mAdapter.notifyItemRangeChanged(0, mAdapter.getItemCount());
95+
//mAdapter.notifyItemRangeChanged(0, mAdapter.getItemCount());
96+
mAdapter.notifyDataSetChanged();
9697
}
9798
}
9899
});

mobile/src/main/java/com/hackfsu/android/hackfsu/UpdateFragment.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import android.widget.ImageView;
1313
import android.widget.TextView;
1414

15-
import com.hackfsu.android.hackfsu.R;
1615
import com.parse.FindCallback;
1716
import com.parse.ParseClassName;
1817
import com.parse.ParseException;
@@ -92,7 +91,7 @@ public void done(List<UpdateItem> list, ParseException e) {
9291
mSwipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
9392
@Override
9493
public void onRefresh() {
95-
ParseQuery<UpdateItem> query = ParseQuery.getQuery("Update");
94+
ParseQuery<UpdateItem> query = ParseQuery.getQuery(ParseName.UPDATE);
9695
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ONLY);
9796
query.orderByDescending("createdAt");
9897
query.findInBackground(new FindCallback<UpdateItem>() {
@@ -154,8 +153,7 @@ public UpdatesRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
154153
View v = LayoutInflater.from(parent.getContext())
155154
.inflate(R.layout.tile_update, parent, false);
156155

157-
ViewHolder vh = new ViewHolder(v);
158-
return vh;
156+
return new ViewHolder(v);
159157
}
160158

161159
// Replace the contents of a view (invoked by the layout manager)

0 commit comments

Comments
 (0)