Skip to content

Commit dd4fefd

Browse files
committed
Merge pull request #46 from HackForEquality/add-vote-day
Add vote day
2 parents 8a7d60d + d66d4a6 commit dd4fefd

Some content is hidden

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

47 files changed

+400
-156
lines changed

mobile/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
applicationId "ie.yesequality.yesequality"
99
minSdkVersion 15
1010
targetSdkVersion 22
11-
versionCode 4
12-
versionName "1.0.1"
11+
versionCode 5
12+
versionName "1.0.5"
1313
}
1414

1515
Properties props = new Properties()

mobile/src/main/AndroidManifest.xml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<uses-permission android:name="android.permission.WAKE_LOCK"/>
2424

2525
<application
26+
android:name=".YesEqualityApplication"
2627
android:allowBackup="true"
2728
android:icon="@mipmap/ic_launcher"
2829
android:label="@string/app_name"
@@ -40,7 +41,7 @@
4041

4142

4243
<activity
43-
android:name=".CameraMainActivityTest"
44+
android:name=".CameraActivity"
4445
android:label="@string/title_activity_camera_main"
4546
android:screenOrientation="portrait"
4647
android:theme="@style/AppTheme.Camera">
@@ -49,32 +50,32 @@
4950
<activity
5051
android:name=".PhotoActivity"
5152
android:label="Share Photo"
52-
android:parentActivityName=".CameraMainActivityTest"
53+
android:parentActivityName=".CameraActivity"
5354
android:screenOrientation="portrait">
5455
<meta-data
5556
android:name="android.support.PARENT_ACTIVITY"
56-
android:value=".CameraMainActivityTest"/>
57+
android:value=".CameraActivity" />
5758
</activity>
5859
<activity
5960
android:name=".MainActivity"
6061
android:label="@string/title_activity_main"
61-
android:parentActivityName=".CameraMainActivityTest"
62+
android:parentActivityName=".CameraActivity"
6263
android:screenOrientation="portrait"
6364
android:theme="@style/AppThemeDarkAction">
6465
<meta-data
6566
android:name="android.support.PARENT_ACTIVITY"
66-
android:value=".CameraMainActivityTest"/>
67+
android:value=".CameraActivity" />
6768
</activity>
6869

6970
<activity
7071
android:name=".NotificationActivity"
7172
android:label="@string/title_activity_notification"
72-
android:parentActivityName=".CameraMainActivityTest"
73+
android:parentActivityName=".CameraActivity"
7374
android:screenOrientation="portrait"
7475
android:theme="@style/AppThemeDarkAction">
7576
<meta-data
7677
android:name="android.support.PARENT_ACTIVITY"
77-
android:value=".CameraMainActivityTest"/>
78+
android:value=".CameraActivity" />
7879
</activity>
7980

8081
<receiver

mobile/src/main/java/ie/yesequality/yesequality/CameraMainActivityTest.java renamed to mobile/src/main/java/ie/yesequality/yesequality/CameraActivity.java

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,38 @@
4848
import ie.yesequality.yesequality.utils.BitmapUtils;
4949
import ie.yesequality.yesequality.views.CameraOverlayView;
5050

51-
public class CameraMainActivityTest extends AppCompatActivity implements TextureView
51+
public class CameraActivity extends AppCompatActivity implements TextureView
5252
.SurfaceTextureListener,
5353
Camera.PictureCallback {
54-
public static final String TAG = "CameraMainActivity";
5554
private static final int PICTURE_QUALITY = 100;
55+
private static final int[] AllVoteBadges = new int[]{R.drawable.ic_wm_i_voted,
56+
R.drawable.ic_wm_i_voted_color,
57+
R.drawable.ic_wm_its_yes,
58+
R.drawable.ic_wm_its_yes_color,
59+
R.drawable.ic_wm_thank_you,
60+
R.drawable.ic_wm_thank_you_color,
61+
R.drawable.ic_wm_vote_for_me,
62+
R.drawable.ic_wm_vote_for_me_color,
63+
R.drawable.ic_wm_yes_im_voting,
64+
R.drawable.ic_wm_yes_im_voting_color,
65+
R.drawable.ic_wm_we_voting,
66+
R.drawable.ic_wm_we_voting_color,
67+
R.drawable.ic_wm_ta,
68+
R.drawable.ic_wm_ta_color,
69+
R.drawable.ic_wm_yes,
70+
R.drawable.ic_wm_yes_color
71+
};
72+
private static int[] sVoteBadges = new int[]{R.drawable.ic_wm_vote_for_me,
73+
R.drawable.ic_wm_vote_for_me_color,
74+
R.drawable.ic_wm_yes_im_voting,
75+
R.drawable.ic_wm_yes_im_voting_color,
76+
R.drawable.ic_wm_we_voting,
77+
R.drawable.ic_wm_we_voting_color,
78+
R.drawable.ic_wm_ta,
79+
R.drawable.ic_wm_ta_color,
80+
R.drawable.ic_wm_yes,
81+
R.drawable.ic_wm_yes_color
82+
};
5683
@InjectView(R.id.tbActionBar)
5784
protected Toolbar tbActionBar;
5885
@InjectView(R.id.rlSurfaceLayout)
@@ -63,26 +90,10 @@ public class CameraMainActivityTest extends AppCompatActivity implements Texture
6390
protected ImageView selfieButton;
6491
@InjectView(R.id.camera_overlay)
6592
protected CameraOverlayView cameraOverlayView;
66-
6793
TextureView mTextureView;
6894
private Camera mCamera;
69-
7095
private Camera.Size optimalSize;
7196
private int mCameraId;
72-
73-
74-
private int[] mVoteBadges = new int[]{R.drawable.ic_wm_vote_for_me,
75-
R.drawable.ic_wm_vote_for_me_color,
76-
R.drawable.ic_wm_yes_im_voting,
77-
R.drawable.ic_wm_yes_im_voting_color,
78-
R.drawable.ic_wm_we_voting,
79-
R.drawable.ic_wm_we_voting_color,
80-
R.drawable.ic_wm_ta,
81-
R.drawable.ic_wm_ta_color,
82-
R.drawable.ic_wm_yes,
83-
R.drawable.ic_wm_yes_color
84-
};
85-
8697
private int mSelectedBadge = 0;
8798
private float mPreviewScale;
8899

@@ -143,18 +154,22 @@ protected void onCreate(Bundle savedInstanceState) {
143154
setContentView(R.layout.surface_camera_layout_test);
144155
ButterKnife.inject(this);
145156

157+
if (((YesEqualityApplication) getApplication()).isVotingStarted()) {
158+
sVoteBadges = AllVoteBadges;
159+
}
160+
146161
tbActionBar.setTitle(R.string.app_name);
147162
tbActionBar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
148163
@Override
149164
public boolean onMenuItemClick(MenuItem item) {
150165
switch (item.getItemId()) {
151166
case R.id.action_info:
152-
Intent infoIntent = new Intent(CameraMainActivityTest.this, MainActivity
167+
Intent infoIntent = new Intent(CameraActivity.this, MainActivity
153168
.class);
154169
startActivity(infoIntent);
155170
return true;
156171
case R.id.action_reminders:
157-
Intent reminderIntent = new Intent(CameraMainActivityTest.this,
172+
Intent reminderIntent = new Intent(CameraActivity.this,
158173
NotificationActivity.class);
159174
startActivity(reminderIntent);
160175
return true;
@@ -203,19 +218,19 @@ public boolean onTouch(View v, MotionEvent event) {
203218
});
204219

205220

206-
ivWaterMarkPic.setImageResource(mVoteBadges[mSelectedBadge]);
221+
ivWaterMarkPic.setImageResource(sVoteBadges[mSelectedBadge]);
207222
ivWaterMarkPic.setOnClickListener(new View.OnClickListener() {
208223
@Override
209224
public void onClick(View v) {
210225
getSharedPreferences(Constants.PREFS_NAME, MODE_PRIVATE).edit().putBoolean
211226
(Constants.WATERMARK_CLICKED, true).apply();
212-
if (mSelectedBadge >= mVoteBadges.length - 1) {
227+
if (mSelectedBadge >= sVoteBadges.length - 1) {
213228
mSelectedBadge = 0;
214229
} else {
215230
mSelectedBadge++;
216231
}
217232

218-
ivWaterMarkPic.setImageResource(mVoteBadges[mSelectedBadge]);
233+
ivWaterMarkPic.setImageResource(sVoteBadges[mSelectedBadge]);
219234
ivWaterMarkPic.setVisibility(View.VISIBLE);
220235
ivWaterMarkPic.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
221236
@Override
@@ -338,7 +353,7 @@ public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int hei
338353
mCamera.startPreview();
339354

340355
} catch (Exception e) {
341-
Log.d(TAG, "Error starting mCamera preview: " + e.getMessage());
356+
Log.d(this.getClass().getSimpleName(), "Error starting mCamera preview: " + e.getMessage());
342357
}
343358
}
344359

@@ -415,18 +430,14 @@ void moveWaterMarkWithinBounds() {
415430
ivWaterMarkPic.setX(0);
416431
} else if (rlSurfaceLayout.getWidth() - internalX < ivWaterMarkPic.getWidth() / 2) {
417432
ivWaterMarkPic.setX(rlSurfaceLayout.getWidth() - ivWaterMarkPic.getWidth());
418-
} /*else {
419-
ivWaterMarkPic.setX(internalX - (ivWaterMarkPic.getWidth() / 2));
420-
}*/
433+
}
421434

422435

423436
if (internalY < ivWaterMarkPic.getHeight() / 2) {
424437
ivWaterMarkPic.setY(0);
425438
} else if (rlSurfaceLayout.getHeight() - internalY < ivWaterMarkPic.getHeight() / 2) {
426439
ivWaterMarkPic.setY(rlSurfaceLayout.getHeight() - ivWaterMarkPic.getHeight());
427-
} /*else {
428-
ivWaterMarkPic.setY(internalY - (ivWaterMarkPic.getHeight() / 2));
429-
}*/
440+
}
430441
}
431442

432443

@@ -483,7 +494,7 @@ public void saveAndSharePicture(Bitmap bitmap) {
483494
} catch (IOException exception) {
484495
showSavingPictureErrorToast();
485496

486-
Log.w(TAG, "IOException during saving bitmap", exception);
497+
Log.w(this.getClass().getSimpleName(), "IOException during saving bitmap", exception);
487498
return;
488499
}
489500

@@ -555,6 +566,10 @@ public void onPictureTaken(byte[] data, Camera camera) {
555566
}
556567

557568

569+
if (sVoteBadges[mSelectedBadge] == R.drawable.ic_wm_i_voted || sVoteBadges[mSelectedBadge] == R.drawable.ic_wm_i_voted_color) {
570+
getSharedPreferences(Constants.PREFS_NAME, MODE_PRIVATE).edit().putBoolean(Constants.HAS_VOTED, true).apply();
571+
}
572+
558573
Bitmap waterMark = ((BitmapDrawable) ivWaterMarkPic.getDrawable()).getBitmap();
559574

560575
bitmap = BitmapUtils.cropBitmapToSquare(bitmap);

mobile/src/main/java/ie/yesequality/yesequality/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
public interface Constants {
77
String PREFS_NAME = "ie.yesequality.preferences";
88
String WATERMARK_CLICKED = "watermark clicked";
9+
String HAS_VOTED = "has voted";
910
}
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
package ie.yesequality.yesequality;
2+
3+
4+
import android.database.DataSetObserver;
5+
import android.os.Bundle;
6+
import android.support.v4.app.ListFragment;
7+
import android.view.LayoutInflater;
8+
import android.view.View;
9+
import android.view.ViewGroup;
10+
import android.widget.ListAdapter;
11+
import android.widget.ListView;
12+
import android.widget.TextView;
13+
14+
import butterknife.ButterKnife;
15+
import butterknife.InjectView;
16+
17+
public class ContributorsFragment extends ListFragment {
18+
19+
private static final String ARG_ABOVE_TEXT = "ABOVE_TEXT";
20+
private static final String ARG_COLOR_ID = "COLOR_ID";
21+
private static final String ARG_TEXT_COLOR_ID = "TEXT_COLOR_ID";
22+
private static final String ARG_CONTRIBUTORS = "CONTRIBUTORS";
23+
@InjectView(R.id.information_above_text)
24+
protected TextView information_above_text;
25+
@InjectView(android.R.id.list)
26+
protected ListView list;
27+
private int aboveTextId;
28+
private String[] mContributors;
29+
private int textColor;
30+
private int colorId;
31+
32+
/**
33+
* Mandatory empty constructor for the fragment manager to instantiate the
34+
* fragment (e.g. upon screen orientation changes).
35+
*/
36+
public ContributorsFragment() {
37+
}
38+
39+
public static ContributorsFragment newInstance(int aboveTextID, int colorID, int textColorID, int contributors) {
40+
ContributorsFragment fragment = new ContributorsFragment();
41+
Bundle args = new Bundle();
42+
args.putInt(ARG_ABOVE_TEXT, aboveTextID);
43+
args.putInt(ARG_COLOR_ID, colorID);
44+
args.putInt(ARG_TEXT_COLOR_ID, textColorID);
45+
args.putInt(ARG_CONTRIBUTORS, contributors);
46+
fragment.setArguments(args);
47+
48+
return fragment;
49+
}
50+
51+
@Override
52+
public void onCreate(Bundle savedInstanceState) {
53+
super.onCreate(savedInstanceState);
54+
55+
if (getArguments() != null) {
56+
aboveTextId = getArguments().getInt(ARG_ABOVE_TEXT);
57+
colorId = getArguments().getInt(ARG_COLOR_ID);
58+
textColor = getResources().getColor(getArguments().getInt(ARG_TEXT_COLOR_ID));
59+
mContributors = getResources().getStringArray(getArguments().getInt(ARG_CONTRIBUTORS));
60+
}
61+
62+
63+
}
64+
65+
@Override
66+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
67+
View rootView = inflater.inflate(R.layout.fragment_contributors, container, false);
68+
rootView.setBackgroundResource(colorId);
69+
ButterKnife.inject(this, rootView);
70+
71+
information_above_text.setText(aboveTextId);
72+
information_above_text.setTextColor(textColor);
73+
74+
list.setAdapter(new ListAdapter() {
75+
@Override
76+
public boolean areAllItemsEnabled() {
77+
return false;
78+
}
79+
80+
@Override
81+
public boolean isEnabled(int position) {
82+
return false;
83+
}
84+
85+
@Override
86+
public void registerDataSetObserver(DataSetObserver observer) {
87+
88+
}
89+
90+
@Override
91+
public void unregisterDataSetObserver(DataSetObserver observer) {
92+
93+
}
94+
95+
@Override
96+
public int getCount() {
97+
return mContributors.length;
98+
}
99+
100+
@Override
101+
public String getItem(int position) {
102+
return mContributors[position];
103+
}
104+
105+
@Override
106+
public long getItemId(int position) {
107+
return position;
108+
}
109+
110+
@Override
111+
public boolean hasStableIds() {
112+
return true;
113+
}
114+
115+
@Override
116+
public View getView(int position, View convertView, ViewGroup parent) {
117+
TextView textView = (TextView) convertView;
118+
if (textView == null) {
119+
textView = (TextView) LayoutInflater.from(getActivity()).inflate(R.layout.simple_list_item, parent, false);
120+
textView.setTextColor(textColor);
121+
}
122+
textView.setText(getItem(position));
123+
124+
return textView;
125+
}
126+
127+
@Override
128+
public int getItemViewType(int position) {
129+
return 0;
130+
}
131+
132+
@Override
133+
public int getViewTypeCount() {
134+
return 1;
135+
}
136+
137+
@Override
138+
public boolean isEmpty() {
139+
return mContributors.length != 0;
140+
}
141+
});
142+
return rootView;
143+
}
144+
145+
146+
}

0 commit comments

Comments
 (0)