Commit cc689fce67319d5caa7a9fc2c5b7eaebabbbc6b2

Authored by geraldo morais
1 parent 0861f1f4
Exists in master

mudanca de cores

correcao de bugs
logo inserida
tela sobre implementada
Showing 39 changed files with 306 additions and 144 deletions   Show diff stats
app/app.iml
... ... @@ -75,10 +75,10 @@
75 75 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/mediarouter-v7/22.0.0/jars" />
76 76 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.2.0/jars" />
77 77 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.0/jars" />
78   - <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.crashlytics.sdk.android/answers/1.2.2/jars" />
  78 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.crashlytics.sdk.android/answers/1.3.0/jars" />
79 79 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.crashlytics.sdk.android/beta/1.1.3/jars" />
80 80 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.crashlytics.sdk.android/crashlytics-core/2.3.3/jars" />
81   - <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.crashlytics.sdk.android/crashlytics/2.4.0/jars" />
  81 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.crashlytics.sdk.android/crashlytics/2.5.0/jars" />
82 82 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-ads/7.5.0/jars" />
83 83 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-analytics/7.5.0/jars" />
84 84 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-appindexing/7.5.0/jars" />
... ... @@ -102,7 +102,7 @@
102 102 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services/7.5.0/jars" />
103 103 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.mikepenz/iconics/1.0.2/jars" />
104 104 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.mikepenz/materialdrawer/3.0.6/jars" />
105   - <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/io.fabric.sdk.android/fabric/1.3.4/jars" />
  105 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/io.fabric.sdk.android/fabric/1.3.5/jars" />
106 106 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
107 107 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
108 108 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
... ... @@ -142,23 +142,23 @@
142 142 <orderEntry type="library" exported="" name="bolts-android-1.2.0" level="project" />
143 143 <orderEntry type="library" exported="" name="play-services-appinvite-7.5.0" level="project" />
144 144 <orderEntry type="library" exported="" name="iconics-1.0.2" level="project" />
145   - <orderEntry type="library" exported="" name="fabric-1.3.4" level="project" />
146 145 <orderEntry type="library" exported="" name="beta-1.1.3" level="project" />
147 146 <orderEntry type="library" exported="" name="support-v4-22.2.0" level="project" />
  147 + <orderEntry type="library" exported="" name="fabric-1.3.5" level="project" />
148 148 <orderEntry type="library" exported="" name="universal-image-loader-1.9.3" level="project" />
149 149 <orderEntry type="library" exported="" name="crashlytics-core-2.3.3" level="project" />
150 150 <orderEntry type="library" exported="" name="play-services-fitness-7.5.0" level="project" />
151 151 <orderEntry type="library" exported="" name="play-services-nearby-7.5.0" level="project" />
152   - <orderEntry type="library" exported="" name="crashlytics-2.4.0" level="project" />
  152 + <orderEntry type="library" exported="" name="crashlytics-2.5.0" level="project" />
153 153 <orderEntry type="library" exported="" name="play-services-plus-7.5.0" level="project" />
154 154 <orderEntry type="library" exported="" name="play-services-wearable-7.5.0" level="project" />
155 155 <orderEntry type="library" exported="" name="play-services-appstate-7.5.0" level="project" />
156 156 <orderEntry type="library" exported="" name="play-services-games-7.5.0" level="project" />
157 157 <orderEntry type="library" exported="" name="play-services-identity-7.5.0" level="project" />
158 158 <orderEntry type="library" exported="" name="MPAndroidChart-v2.1.0" level="project" />
159   - <orderEntry type="library" exported="" name="answers-1.2.2" level="project" />
160 159 <orderEntry type="library" exported="" name="design-22.2.0" level="project" />
161 160 <orderEntry type="library" exported="" name="play-services-maps-7.5.0" level="project" />
  161 + <orderEntry type="library" exported="" name="answers-1.3.0" level="project" />
162 162 <orderEntry type="library" exported="" name="cardview-v7-22.2.0" level="project" />
163 163 </component>
164 164 </module>
165 165 \ No newline at end of file
... ...
app/build.gradle
... ... @@ -24,8 +24,8 @@ android {
24 24 applicationId "com.monitorabrasil.monitoramunicipio"
25 25 minSdkVersion 16
26 26 targetSdkVersion 22
27   - versionCode 10
28   - versionName "0.8.2"
  27 + versionCode 11
  28 + versionName "0.9.0"
29 29 }
30 30 buildTypes {
31 31 release {
... ...
app/src/main/AndroidManifest.xml
... ... @@ -77,6 +77,14 @@
77 77 android:name=".ComentarioActivity"
78 78 android:label="@string/title_activity_comentario" >
79 79 </activity>
  80 + <activity
  81 + android:name=".SobreActivity"
  82 + android:label="@string/title_activity_sobre"
  83 + android:parentActivityName=".MainActivity" >
  84 + <meta-data
  85 + android:name="android.support.PARENT_ACTIVITY"
  86 + android:value="com.monitorabrasil.monitoralegislativo.MainActivity" />
  87 + </activity>
80 88 </application>
81 89  
82 90 </manifest>
... ...
app/src/main/ic_action_share-web.png 0 → 100644

5.76 KB

app/src/main/ic_launcher-web.png 0 → 100644

40.5 KB

app/src/main/java/com/monitorabrasil/monitoralegislativo/CamaraActivity.java
... ... @@ -59,9 +59,7 @@ public class CamaraActivity extends AppCompatActivity {
59 59 int id = item.getItemId();
60 60  
61 61 //noinspection SimplifiableIfStatement
62   - if (id == R.id.action_settings) {
63   - return true;
64   - }
  62 +
65 63  
66 64 return super.onOptionsItemSelected(item);
67 65 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/ComentarioActivity.java
... ... @@ -223,9 +223,6 @@ public class ComentarioActivity extends AppCompatActivity {
223 223 int id = item.getItemId();
224 224  
225 225 //noinspection SimplifiableIfStatement
226   - if (id == R.id.action_settings) {
227   - return true;
228   - }
229 226  
230 227 return super.onOptionsItemSelected(item);
231 228 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/LoginActivity.java
... ... @@ -11,6 +11,7 @@ import android.content.Intent;
11 11 import android.content.Loader;
12 12 import android.database.Cursor;
13 13 import android.graphics.Bitmap;
  14 +import android.graphics.BitmapFactory;
14 15 import android.net.Uri;
15 16 import android.os.AsyncTask;
16 17  
... ... @@ -30,10 +31,13 @@ import android.widget.ArrayAdapter;
30 31 import android.widget.AutoCompleteTextView;
31 32 import android.widget.Button;
32 33 import android.widget.EditText;
  34 +import android.widget.ImageButton;
33 35 import android.widget.ImageView;
34 36 import android.widget.LinearLayout;
35 37 import android.widget.TextView;
36 38  
  39 +import java.io.FileNotFoundException;
  40 +import java.io.InputStream;
37 41 import java.text.ParseException;
38 42 import java.util.ArrayList;
39 43 import java.util.List;
... ... @@ -54,7 +58,7 @@ import org.w3c.dom.Text;
54 58 /**
55 59 * A login screen that offers login via email/password.
56 60 */
57   -public class LoginActivity extends AppCompatActivity implements LoaderCallbacks<Cursor> {
  61 +public class LoginActivity extends AppCompatActivity {
58 62  
59 63  
60 64 /**
... ... @@ -77,6 +81,9 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
77 81 private TextView lblEmail;
78 82 private ImageView foto;
79 83 private ParseUser currentUser;
  84 + private ImageButton btnFoto;
  85 +
  86 + private final int PICK_IMAGE=2;
80 87  
81 88 @Override
82 89 protected void onCreate(Bundle savedInstanceState) {
... ... @@ -85,23 +92,39 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
85 92 setupActionBar();
86 93 mLoginFormView = findViewById(R.id.login_form);
87 94 mLogoutFormView = findViewById(R.id.logout_form);
  95 + mProgressView = findViewById(R.id.login_progress);
  96 + btnFoto = (ImageButton) findViewById(R.id.btnFoto);
88 97 currentUser = ParseUser.getCurrentUser();
89 98  
90 99  
  100 +
  101 +
91 102 if (currentUser != null) {
92 103 montaFormLogout();
93 104  
94 105 }else{
95   -
96 106 mLogoutFormView.setVisibility(View.GONE);
97 107 mLoginFormView.setVisibility(View.VISIBLE);
98 108  
99 109 }
100 110  
  111 + // Set up the login form.
  112 + btnFoto.setOnClickListener(new OnClickListener() {
  113 + @Override
  114 + public void onClick(View v) {
  115 + Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT);
  116 + getIntent.setType("image/*");
101 117  
  118 + Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  119 + pickIntent.setType("image/*");
102 120  
  121 + Intent chooserIntent = Intent.createChooser(getIntent, "Selecione uma foto");
  122 + chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent});
  123 +
  124 + startActivityForResult(chooserIntent, PICK_IMAGE);
  125 + }
  126 + });
103 127  
104   - // Set up the login form.
105 128 mNome = (EditText)findViewById(R.id.txtNome);
106 129 mNome.setVisibility(View.GONE);
107 130  
... ... @@ -112,13 +135,11 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
112 135  
113 136 @Override
114 137 public void onClick(View v) {
115   - showProgress(true);
  138 + showProgress(true,null);
116 139 ParseUser.logOutInBackground(new LogOutCallback() {
117 140 @Override
118 141 public void done(com.parse.ParseException e) {
119   - mLogoutFormView.setVisibility(View.GONE);
120   - mLoginFormView.setVisibility(View.VISIBLE);
121   - showProgress(false);
  142 + showProgress(false, mLoginFormView);
122 143 }
123 144 });
124 145 }
... ... @@ -153,6 +174,8 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
153 174 Snackbar.make(mLoginFormView, "Login cancelado ", Snackbar.LENGTH_LONG)
154 175 .setAction("Action", null).show();
155 176 } else if (parseUser.isNew()) {
  177 + parseUser.put("nome",ParseTwitterUtils.getTwitter().getScreenName());
  178 + parseUser.saveInBackground();
156 179 montaFormLogout();
157 180 } else {
158 181 montaFormLogout();
... ... @@ -163,7 +186,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
163 186 });
164 187  
165 188 mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
166   - populateAutoComplete();
  189 +
167 190  
168 191 mPasswordView = (EditText) findViewById(R.id.password);
169 192 mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
... ... @@ -186,7 +209,38 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
186 209 });
187 210  
188 211  
189   - mProgressView = findViewById(R.id.login_progress);
  212 +
  213 + }
  214 +
  215 + @Override
  216 + public void onActivityResult(int requestCode, int resultCode, Intent data) {
  217 + super.onActivityResult(requestCode, resultCode, data);
  218 + if (requestCode == PICK_IMAGE && resultCode == Activity.RESULT_OK) {
  219 + if (data == null) {
  220 + //Display an error
  221 + return;
  222 + }
  223 + try {
  224 + Uri selectedImage = data.getData();
  225 + InputStream imageStream = getContentResolver().openInputStream(selectedImage);
  226 + Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream);
  227 + btnFoto.setImageBitmap(yourSelectedImage);
  228 + } catch (FileNotFoundException e) {
  229 + e.printStackTrace();
  230 + }
  231 + //Now you can do whatever you want with your inpustream, save it as file, upload to a server, decode a bitmap...
  232 + }
  233 + }
  234 +
  235 + private void showProgress(boolean b,View v) {
  236 + if(b){
  237 + mProgressView.setVisibility(View.VISIBLE);
  238 + mLogoutFormView.setVisibility(View.GONE);
  239 + mLoginFormView.setVisibility(View.GONE);
  240 + }else{
  241 + mProgressView.setVisibility(View.GONE);
  242 + v.setVisibility(View.VISIBLE);
  243 + }
190 244 }
191 245  
192 246 private void montaFormLogout() {
... ... @@ -194,10 +248,10 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
194 248 lblEmail = (TextView)findViewById(R.id.lblEmail);
195 249 foto = (ImageView)findViewById(R.id.foto);
196 250  
197   - mLogoutFormView.setVisibility(View.VISIBLE);
198 251 mLoginFormView.setVisibility(View.GONE);
  252 + showProgress(false,mLogoutFormView);
199 253  
200   - if(ParseTwitterUtils.getTwitter()!=null){
  254 + if(ParseTwitterUtils.getTwitter().getUserId() !=null){
201 255 String screenName = ParseTwitterUtils.getTwitter().getScreenName();
202 256 lblNome.setText(screenName);
203 257 lblEmail.setText("");
... ... @@ -216,7 +270,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
216 270  
217 271 @Override
218 272 public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
219   - foto.setImageBitmap(loadedImage);
  273 + foto.setImageBitmap(loadedImage);
220 274 }
221 275  
222 276 @Override
... ... @@ -279,7 +333,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
279 333 } else {
280 334 // Show a progress spinner, and kick off a background task to
281 335 // perform the user login attempt.
282   - showProgress(true);
  336 + showProgress(true,null);
283 337  
284 338 ParseUser user = new ParseUser();
285 339 user.setUsername(email);
... ... @@ -292,11 +346,11 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
292 346 @Override
293 347 public void done(com.parse.ParseException e) {
294 348 if (e == null) {
295   - showProgress(false);
296 349 montaFormLogout();
297 350 } else {
298   - showProgress(false);
299   -
  351 + showProgress(false,mLoginFormView);
  352 + Snackbar.make(mLoginFormView, "Houve um erro ao fazer seu cadastro ", Snackbar.LENGTH_LONG)
  353 + .setAction("Action", null).show();
300 354 }
301 355 }
302 356  
... ... @@ -306,9 +360,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
306 360 }
307 361 }
308 362  
309   - private void populateAutoComplete() {
310   - getLoaderManager().initLoader(0, null, this);
311   - }
  363 +
312 364  
313 365 /**
314 366 * Set up the {@link android.app.ActionBar}, if the API is available.
... ... @@ -370,7 +422,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
370 422 } else {
371 423 // Show a progress spinner, and kick off a background task to
372 424 // perform the user login attempt.
373   - showProgress(true);
  425 + showProgress(true,null);
374 426  
375 427 //fazer o login aqui
376 428 fazerLogin(email, password);
... ... @@ -388,7 +440,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
388 440 } else {
389 441 mPasswordView.setError(getString(R.string.error_incorrect_password));
390 442 mPasswordView.requestFocus();
391   - showProgress(false);
  443 + showProgress(false,mLoginFormView);
392 444 }
393 445 }
394 446  
... ... @@ -406,94 +458,8 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks&lt;
406 458 return password.length() > 4;
407 459 }
408 460  
409   - /**
410   - * Shows the progress UI and hides the login form.
411   - */
412   - @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
413   - public void showProgress(final boolean show) {
414   - // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
415   - // for very easy animations. If available, use these APIs to fade-in
416   - // the progress spinner.
417   - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
418   - int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
419   -
420   - mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
421   - mLoginFormView.animate().setDuration(shortAnimTime).alpha(
422   - show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
423   - @Override
424   - public void onAnimationEnd(Animator animation) {
425   - mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
426   - }
427   - });
428   - mLogoutFormView.setVisibility(show ? View.GONE : View.VISIBLE);
429   - mLogoutFormView.animate().setDuration(shortAnimTime).alpha(
430   - show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
431   - @Override
432   - public void onAnimationEnd(Animator animation) {
433   - mLogoutFormView.setVisibility(show ? View.GONE : View.VISIBLE);
434   - }
435   - });
436   -
437   - mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
438   - mProgressView.animate().setDuration(shortAnimTime).alpha(
439   - show ? 1 : 0).setListener(new AnimatorListenerAdapter() {
440   - @Override
441   - public void onAnimationEnd(Animator animation) {
442   - mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
443   - }
444   - });
445   - } else {
446   - // The ViewPropertyAnimator APIs are not available, so simply show
447   - // and hide the relevant UI components.
448   - mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
449   - mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
450   - mLogoutFormView.setVisibility(show ? View.GONE : View.VISIBLE);
451   - }
452   - }
453   -
454   - @Override
455   - public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
456   - return new CursorLoader(this,
457   - // Retrieve data rows for the device user's 'profile' contact.
458   - Uri.withAppendedPath(ContactsContract.Profile.CONTENT_URI,
459   - ContactsContract.Contacts.Data.CONTENT_DIRECTORY), ProfileQuery.PROJECTION,
460   -
461   - // Select only email addresses.
462   - ContactsContract.Contacts.Data.MIMETYPE +
463   - " = ?", new String[]{ContactsContract.CommonDataKinds.Email
464   - .CONTENT_ITEM_TYPE},
465   -
466   - // Show primary email addresses first. Note that there won't be
467   - // a primary email address if the user hasn't specified one.
468   - ContactsContract.Contacts.Data.IS_PRIMARY + " DESC");
469   - }
470   -
471   - @Override
472   - public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
473   - List<String> emails = new ArrayList<String>();
474   - cursor.moveToFirst();
475   - while (!cursor.isAfterLast()) {
476   - emails.add(cursor.getString(ProfileQuery.ADDRESS));
477   - cursor.moveToNext();
478   - }
479 461  
480   - addEmailsToAutoComplete(emails);
481   - }
482   -
483   - @Override
484   - public void onLoaderReset(Loader<Cursor> cursorLoader) {
485 462  
486   - }
487   -
488   - private interface ProfileQuery {
489   - String[] PROJECTION = {
490   - ContactsContract.CommonDataKinds.Email.ADDRESS,
491   - ContactsContract.CommonDataKinds.Email.IS_PRIMARY,
492   - };
493   -
494   - int ADDRESS = 0;
495   - int IS_PRIMARY = 1;
496   - }
497 463  
498 464  
499 465 private void addEmailsToAutoComplete(List<String> emailAddressCollection) {
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/MainActivity.java
... ... @@ -179,7 +179,8 @@ public class MainActivity extends AppCompatActivity implements HomeFragment.OnFr
179 179 new DividerDrawerItem(),
180 180 new PrimaryDrawerItem().withName("Vereadores"),
181 181 new SecondaryDrawerItem().withName("Indicações"),
182   - new SecondaryDrawerItem().withName("Câmara")
  182 + new SecondaryDrawerItem().withName("Câmara"),
  183 + new SecondaryDrawerItem().withName("Sobre")
183 184 )
184 185 .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
185 186 @Override
... ... @@ -207,6 +208,9 @@ public class MainActivity extends AppCompatActivity implements HomeFragment.OnFr
207 208 case 4:
208 209 startActivity(new Intent(getApplicationContext(), CamaraActivity.class));
209 210 break;
  211 + case 5:
  212 + startActivity(new Intent(getApplicationContext(), SobreActivity.class));
  213 + break;
210 214  
211 215 }
212 216 navigationDrawerLeft.closeDrawer();
... ... @@ -237,7 +241,8 @@ public class MainActivity extends AppCompatActivity implements HomeFragment.OnFr
237 241 int id = item.getItemId();
238 242  
239 243 //noinspection SimplifiableIfStatement
240   - if (id == R.id.action_settings) {
  244 + if (id == R.id.action_sobre) {
  245 + startActivity(new Intent(getApplicationContext(),SobreActivity.class));
241 246 return true;
242 247 }
243 248  
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/PoliticoFichaActivity.java
... ... @@ -176,9 +176,7 @@ public class PoliticoFichaActivity extends AppCompatActivity {
176 176 int id = item.getItemId();
177 177  
178 178 //noinspection SimplifiableIfStatement
179   - if (id == R.id.action_settings) {
180   - return true;
181   - }
  179 +
182 180  
183 181 return super.onOptionsItemSelected(item);
184 182 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/PoliticosActivity.java
... ... @@ -62,9 +62,7 @@ public class PoliticosActivity extends AppCompatActivity {
62 62 int id = item.getItemId();
63 63  
64 64 //noinspection SimplifiableIfStatement
65   - if (id == R.id.action_settings) {
66   - return true;
67   - }
  65 +
68 66  
69 67 return super.onOptionsItemSelected(item);
70 68 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/ProjetosActivity.java
... ... @@ -70,9 +70,7 @@ public class ProjetosActivity extends ActionBarActivity {
70 70 int id = item.getItemId();
71 71  
72 72 //noinspection SimplifiableIfStatement
73   - if (id == R.id.action_settings) {
74   - return true;
75   - }
  73 +
76 74  
77 75 return super.onOptionsItemSelected(item);
78 76 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/SobreActivity.java 0 → 100644
... ... @@ -0,0 +1,71 @@
  1 +package com.monitorabrasil.monitoralegislativo;
  2 +
  3 +import android.content.pm.PackageManager;
  4 +import android.support.v7.app.ActionBarActivity;
  5 +import android.os.Bundle;
  6 +import android.support.v7.app.AppCompatActivity;
  7 +import android.support.v7.widget.Toolbar;
  8 +import android.text.Html;
  9 +import android.text.method.LinkMovementMethod;
  10 +import android.view.Menu;
  11 +import android.view.MenuItem;
  12 +import android.widget.TextView;
  13 +
  14 +import com.crashlytics.android.answers.Answers;
  15 +import com.crashlytics.android.answers.ContentViewEvent;
  16 +import com.monitorabrasil.monitoralegislativo.R;
  17 +
  18 +import org.w3c.dom.Text;
  19 +
  20 +public class SobreActivity extends AppCompatActivity {
  21 +
  22 + Toolbar toolbar;
  23 +
  24 + @Override
  25 + protected void onCreate(Bundle savedInstanceState) {
  26 + super.onCreate(savedInstanceState);
  27 + setContentView(R.layout.activity_sobre);
  28 + initToolbar();
  29 + toolbar.setTitle("Sobre");
  30 + setSupportActionBar(toolbar);
  31 + getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  32 +
  33 +
  34 +
  35 + TextView versao = (TextView)findViewById(R.id.versao);
  36 + try {
  37 + versao.setText("Versão: "+getPackageManager().getPackageInfo(getPackageName(), 0).versionName);
  38 + } catch (PackageManager.NameNotFoundException e) {
  39 + e.printStackTrace();
  40 + }
  41 +
  42 + Answers.getInstance().logContentView(new ContentViewEvent()
  43 + .putContentName("SobreActivity")
  44 + .putContentType("Activity"));
  45 + }
  46 +
  47 + private void initToolbar() {
  48 + toolbar = (Toolbar) findViewById(R.id.toolbar);
  49 + setSupportActionBar(toolbar);
  50 + }
  51 +
  52 + @Override
  53 + public boolean onCreateOptionsMenu(Menu menu) {
  54 + // Inflate the menu; this adds items to the action bar if it is present.
  55 + getMenuInflater().inflate(R.menu.menu_sobre, menu);
  56 + return true;
  57 + }
  58 +
  59 + @Override
  60 + public boolean onOptionsItemSelected(MenuItem item) {
  61 + // Handle action bar item clicks here. The action bar will
  62 + // automatically handle clicks on the Home/Up button, so long
  63 + // as you specify a parent activity in AndroidManifest.xml.
  64 + int id = item.getItemId();
  65 +
  66 + //noinspection SimplifiableIfStatement
  67 +
  68 +
  69 + return super.onOptionsItemSelected(item);
  70 + }
  71 +}
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/adapters/ProjetoAdapter.java
... ... @@ -225,9 +225,11 @@ public class ProjetoAdapter extends RecyclerView.Adapter&lt;ProjetoAdapter.ViewHold
225 225 }
226 226 if(votado){
227 227  
  228 + if(null!= viewHolder2.projetoVotado){
  229 + viewHolder2.projetoVotado.unpinInBackground();
  230 + viewHolder2.projetoVotado.deleteInBackground();
  231 + }
228 232  
229   - viewHolder2.projetoVotado.unpinInBackground();
230   - viewHolder2.projetoVotado.deleteInBackground();
231 233  
232 234  
233 235 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/HomeFragment.java
... ... @@ -4,6 +4,7 @@ import android.app.Activity;
4 4 import android.content.Intent;
5 5 import android.net.Uri;
6 6 import android.os.Bundle;
  7 +import android.support.design.widget.FloatingActionButton;
7 8 import android.support.v4.app.Fragment;
8 9 import android.support.v7.widget.LinearLayoutManager;
9 10 import android.support.v7.widget.RecyclerView;
... ... @@ -23,6 +24,7 @@ import com.github.mikephil.charting.data.BarDataSet;
23 24 import com.github.mikephil.charting.data.BarEntry;
24 25 import com.github.mikephil.charting.data.Entry;
25 26 import com.github.mikephil.charting.utils.ValueFormatter;
  27 +import com.monitorabrasil.monitoralegislativo.ComentarioActivity;
26 28 import com.monitorabrasil.monitoralegislativo.PoliticoFichaActivity;
27 29 import com.monitorabrasil.monitoralegislativo.R;
28 30 import com.monitorabrasil.monitoralegislativo.adapters.VereadorAdapter;
... ... @@ -107,8 +109,23 @@ public class HomeFragment extends Fragment implements RecyclerViewOnClickListene
107 109  
108 110 //buscar o grafico de gastos
109 111 mChart = (BarChart)view.findViewById(R.id.chart1);
  112 +
110 113 buscaGastos();
111 114  
  115 + FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab);
  116 + fab.setOnClickListener(new View.OnClickListener() {
  117 + @Override
  118 + public void onClick(View view) {
  119 + Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
  120 + sharingIntent.setType("text/plain");
  121 + String shareBody = "Recomendo o app Participa Cidadão https://play.google.com/store/apps/details?id=com.monitorabrasil.monitoramunicipio";
  122 + sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Participa Cidadão");
  123 + sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
  124 + startActivity(Intent.createChooser(sharingIntent, "Compartilhar via"));
  125 +
  126 + }
  127 + });
  128 +
112 129  
113 130 return view;
114 131 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/ListaProjetosFragment.java
... ... @@ -12,6 +12,8 @@ import android.view.View;
12 12 import android.view.ViewGroup;
13 13 import android.widget.ProgressBar;
14 14  
  15 +import com.crashlytics.android.answers.Answers;
  16 +import com.crashlytics.android.answers.ContentViewEvent;
15 17 import com.monitorabrasil.monitoralegislativo.R;
16 18 import com.monitorabrasil.monitoralegislativo.adapters.ProjetoAdapter;
17 19 import com.monitorabrasil.monitoralegislativo.adapters.VereadorAdapter;
... ... @@ -97,6 +99,10 @@ public class ListaProjetosFragment extends Fragment implements RecyclerViewOnCli
97 99  
98 100 if(tipoProjeto != null){
99 101 query.whereEqualTo("classificacao", tipoProjeto);
  102 + Answers.getInstance().logContentView(new ContentViewEvent()
  103 + .putContentName("ListaProjetosFragment")
  104 + .putContentType("Fragment")
  105 + .putCustomAttribute("tipoProjeto", tipoProjeto));
100 106 }
101 107  
102 108  
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/fragments/PoliticoFichaFragment.java
... ... @@ -27,6 +27,8 @@ import com.parse.ParseObject;
27 27 import com.parse.ParseQuery;
28 28 import com.parse.ParseUser;
29 29  
  30 +import java.text.NumberFormat;
  31 +
30 32 /**
31 33 * Created by geral_000 on 20/06/2015.
32 34 */
... ... @@ -125,10 +127,10 @@ public class PoliticoFichaFragment extends Fragment {
125 127 facebook.setText(politico.get("facebook").toString());
126 128 //gastos
127 129 TextView gastos = (TextView) view.findViewById(R.id.gastos);
128   - gastos.setText(politico.get("gasto_campanha").toString());
  130 + gastos.setText(politico.get("gasto_campanha").toString().replace(",","").replace(".",","));
129 131 //bens declarados
130 132 TextView bens = (TextView) view.findViewById(R.id.bens);
131   - bens.setText(politico.get("bens_declarados").toString());
  133 + bens.setText(politico.get("bens_declarados").toString().replace(",", "").replace(".",","));
132 134  
133 135 return view;
134 136 }
... ...
app/src/main/java/com/monitorabrasil/monitoralegislativo/util/MyValueFormatter.java
... ... @@ -3,6 +3,7 @@ package com.monitorabrasil.monitoralegislativo.util;
3 3 import com.github.mikephil.charting.utils.ValueFormatter;
4 4  
5 5 import java.text.DecimalFormat;
  6 +import java.text.NumberFormat;
6 7  
7 8 /**
8 9 * Created by geral_000 on 21/06/2015.
... ... @@ -17,7 +18,7 @@ public class MyValueFormatter implements ValueFormatter {
17 18  
18 19 @Override
19 20 public String getFormattedValue(float value) {
20   - return "R$" + mFormat.format(value) ;
  21 + return "R$" + NumberFormat.getCurrencyInstance().format(value) ;
21 22 }
22 23  
23 24 }
... ...
app/src/main/res/drawable-hdpi/ic_action_person.png 0 → 100644

575 Bytes

app/src/main/res/drawable-mdpi/ic_action_person.png 0 → 100644

411 Bytes

app/src/main/res/drawable-xhdpi/ic_action_person.png 0 → 100644

760 Bytes

app/src/main/res/drawable-xxhdpi/ic_action_person.png 0 → 100644

1.11 KB

app/src/main/res/layout/activity_login.xml
... ... @@ -30,6 +30,14 @@
30 30  
31 31 <LinearLayout android:id="@+id/email_login_form" android:layout_width="match_parent"
32 32 android:layout_height="wrap_content" android:orientation="vertical">
  33 + <ImageButton
  34 + android:layout_width="50dp"
  35 + android:paddingTop="5dp"
  36 + android:layout_height="50dp"
  37 + android:visibility="gone"
  38 + android:layout_gravity="center"
  39 + android:background="@drawable/person_1"
  40 + android:id="@+id/btnFoto"/>
33 41 <android.support.design.widget.TextInputLayout
34 42 android:layout_width="match_parent"
35 43 android:layout_height="wrap_content">
... ...
app/src/main/res/layout/activity_sobre.xml 0 → 100644
... ... @@ -0,0 +1,66 @@
  1 +<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2 + xmlns:app="http://schemas.android.com/apk/res-auto"
  3 + android:id="@+id/main_content"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent">
  6 +
  7 +
  8 + <android.support.design.widget.AppBarLayout
  9 + android:id="@+id/appbar"
  10 + android:layout_width="match_parent"
  11 + android:layout_height="70dp"
  12 + android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
  13 + android:fitsSystemWindows="true">
  14 +
  15 + <android.support.v7.widget.Toolbar
  16 + android:id="@+id/toolbar"
  17 + android:layout_height="70dp"
  18 + android:gravity="bottom"
  19 + android:paddingBottom="12dp"
  20 + android:paddingTop="16dp"
  21 + android:minHeight="?attr/actionBarSize"
  22 + app:layout_scrollFlags="scroll|exitUntilCollapsed"
  23 + android:layout_width="match_parent"
  24 + app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
  25 + app:layout_collapseMode="pin" />
  26 +
  27 +
  28 + <android.support.design.widget.TabLayout
  29 + android:id="@+id/tabLayout"
  30 + android:layout_width="match_parent"
  31 + android:layout_height="wrap_content"
  32 + app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
  33 +
  34 +
  35 +
  36 + </android.support.design.widget.AppBarLayout>
  37 +
  38 +<LinearLayout android:layout_width="match_parent"
  39 + android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
  40 + android:paddingRight="@dimen/activity_horizontal_margin"
  41 + android:paddingTop="90dp"
  42 + android:paddingBottom="@dimen/activity_vertical_margin"
  43 + android:orientation="vertical">
  44 +<ImageView
  45 + android:layout_width="fill_parent"
  46 + android:layout_height="80dp" android:src="@drawable/marca_1024_500" android:paddingBottom="15dp"/>
  47 +
  48 + <TextView
  49 + android:layout_width="fill_parent"
  50 + android:layout_height="wrap_content"
  51 + android:text="@string/sobre"/>
  52 +
  53 + <TextView
  54 + android:layout_width="fill_parent"
  55 + android:layout_height="wrap_content"
  56 + android:id="@+id/credito"
  57 + android:autoLink="email"
  58 + android:text="@string/credito"/>
  59 + <TextView
  60 + android:layout_width="wrap_content"
  61 + android:layout_height="wrap_content" android:layout_gravity="right"
  62 + android:text="Versão" android:id="@+id/versao"/>
  63 +
  64 +
  65 +</LinearLayout>
  66 +</android.support.design.widget.CoordinatorLayout>
0 67 \ No newline at end of file
... ...
app/src/main/res/layout/fragment_home.xml
... ... @@ -79,4 +79,11 @@
79 79 </LinearLayout>
80 80  
81 81 </android.support.v4.widget.NestedScrollView>
  82 + <android.support.design.widget.FloatingActionButton
  83 + android:id="@+id/fab"
  84 + android:layout_width="wrap_content"
  85 + android:layout_height="wrap_content"
  86 + android:layout_gravity="end|bottom"
  87 + android:layout_margin="@dimen/fab_margin"
  88 + android:src="@android:drawable/ic_menu_share" />
82 89 </FrameLayout>
... ...
app/src/main/res/menu/menu_main.xml
1 1 <menu xmlns:android="http://schemas.android.com/apk/res/android"
2 2 xmlns:app="http://schemas.android.com/apk/res-auto"
3 3 xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
4   - <item android:id="@+id/action_settings" android:title="@string/action_sobre"
  4 + <item android:id="@+id/action_sobre" android:title="@string/action_sobre"
5 5 android:orderInCategory="100" app:showAsAction="never" />
6 6 </menu>
... ...
app/src/main/res/menu/menu_sobre.xml 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +<menu xmlns:android="http://schemas.android.com/apk/res/android"
  2 + xmlns:app="http://schemas.android.com/apk/res-auto"
  3 + xmlns:tools="http://schemas.android.com/tools"
  4 + tools:context="com.monitorabrasil.monitoralegislativo.SobreActivity">
  5 +
  6 +</menu>
... ...
app/src/main/res/mipmap-hdpi/ic_action_share.png 0 → 100644

1.28 KB

app/src/main/res/mipmap-hdpi/ic_launcher.png

3.34 KB | W: | H:

2.6 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-mdpi/ic_action_share.png 0 → 100644

731 Bytes

app/src/main/res/mipmap-mdpi/ic_launcher.png

2.15 KB | W: | H:

1.61 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xhdpi/ic_action_share.png 0 → 100644

1.9 KB

app/src/main/res/mipmap-xhdpi/ic_launcher.png

4.73 KB | W: | H:

3.52 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxhdpi/ic_action_share.png 0 → 100644

2.97 KB

app/src/main/res/mipmap-xxhdpi/ic_launcher.png

7.54 KB | W: | H:

5.94 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
app/src/main/res/mipmap-xxxhdpi/ic_action_share.png 0 → 100644

3.48 KB

app/src/main/res/mipmap-xxxhdpi/ic_launcher.png 0 → 100644

8.64 KB

app/src/main/res/values/colors.xml
... ... @@ -3,15 +3,19 @@
3 3 <color name="grey">#ddd</color>
4 4 <color name="black">#000</color>
5 5  
6   - <color name="colorPrimaryLight">#C8E6C9</color>
7   - <color name="colorPrimary">#4CAF50</color>
8   - <color name="colorPrimaryDark">#388E3C</color>
  6 + <color name="colorPrimary">#FF5722</color>
  7 + <color name="colorPrimaryDark">#E64A19</color>
  8 + <color name="colorPrimaryLight">#FFCCBC</color>
  9 + <color name="colorAccent">#536DFE</color>
9 10 <color name="colorPrimarytext">#212121</color>
10 11 <color name="colorSecondText">#727272</color>
  12 + <color name="icons">#FFFFFF</color>
  13 + <color name="divider">#B6B6B6</color>
  14 +
  15 +
11 16 <color name="coloLink">#1ea4f7</color>
12   - <color name="colorDivider">#ccc</color>
  17 + <color name="colorDivider">#B6B6B6</color>
13 18  
14   - <color name="colorAccent">#448AFF</color>
15 19  
16 20 <color name="colorFAB">#FF9800</color>
17 21 <color name="colorFABPressed">#F57C00</color>
... ...
app/src/main/res/values/strings.xml
... ... @@ -17,10 +17,14 @@
17 17  
18 18 <string name="projeto_apoio">Apoio</string>
19 19 <string name="projeto_naoapoio">Não Apoio</string>
20   - <string name="title_activity_comentario">ComentarioActivity</string>
  20 + <string name="title_activity_comentario">Comente</string>
21 21  
22 22 <!-- TODO: Remove or change this placeholder text -->
23 23 <string name="hello_blank_fragment">Hello blank fragment</string>
  24 + <string name="title_activity_sobre">Sobre</string>
24 25  
  26 + <string name="hello_world">Hello world!</string>
  27 + <string name="sobre">O ParticipaCidadão é um aplicativo em fase experimental destinado a tornar mais fácil e atraente a conexão/interação do cidadão com a Câmara de Vereadores e com temas públicos. Em outras palavras, é também uma plataforma de cidadania e democracia para o cidadão que quer participar mais ativamente do desenvolvimento de sua cidade.\n\n Essa versão piloto, por enquanto, só disponibiliza os dados da Câmara Municipal de Ouro Branco/MG. Entretanto, gradativamente, outros municípios serão incluídos na base de dados. \n\n Mais do que um aplicativo, é uma atitude! Participe! Venha construir conosco as cidades do Brasil de 2030.</string>
  28 + <string name="credito">Agradecimentos:\nWesley Rocha wesleyweb@gmail.com - criador da logomarca</string>
25 29  
26 30 </resources>
... ...