44import android .content .Intent ;
55import android .content .SharedPreferences ;
66import android .content .pm .PackageManager ;
7+ import android .graphics .Bitmap ;
78import android .support .annotation .NonNull ;
89import android .support .design .widget .CoordinatorLayout ;
910import android .support .design .widget .FloatingActionButton ;
1314import android .support .v4 .app .Fragment ;
1415import android .os .Bundle ;
1516import android .support .v4 .app .FragmentTransaction ;
17+ import android .support .v4 .graphics .drawable .RoundedBitmapDrawable ;
18+ import android .support .v4 .graphics .drawable .RoundedBitmapDrawableFactory ;
1619import android .support .v4 .view .GravityCompat ;
1720import android .support .v4 .widget .DrawerLayout ;
1821import android .support .v7 .app .ActionBarDrawerToggle ;
2730
2831import com .bumptech .glide .Glide ;
2932import com .bumptech .glide .load .engine .DiskCacheStrategy ;
33+ import com .bumptech .glide .request .target .BitmapImageViewTarget ;
3034import com .google .android .gms .auth .api .Auth ;
3135import com .google .android .gms .auth .api .signin .GoogleSignInAccount ;
3236import com .google .android .gms .auth .api .signin .GoogleSignInOptions ;
@@ -76,6 +80,8 @@ protected void onCreate(Bundle savedInstanceState) {
7680 if (savedInstanceState == null ) {
7781 setUpInfo ();
7882 }
83+
84+ loadMapFragment ();
7985 }
8086
8187 @ Override
@@ -91,9 +97,6 @@ private void setUpInfo() {
9197 if (checkIfLoggedIn ()) {
9298 fab .hide ();
9399 }
94-
95- navigationView .getMenu ().getItem (0 ).setChecked (true );
96- loadMapFragment ();
97100 }
98101
99102 private void setUpNavigationDrawer () {
@@ -119,26 +122,39 @@ private void setUpNavigationHeader() {
119122 }
120123
121124 private void setUpNavigationHeaderValue () {
122- userName .setText (mSharedPreferences .getString (NAME , getString ( R . string . sign_in ) ));
125+ userName .setText (mSharedPreferences .getString (NAME , "" ));
123126 emailId .setText (mSharedPreferences .getString (EMAIL , "" ));
127+ loadProfilePic ();
128+
129+ changeSignInSignOutOption ();
130+ }
131+
132+ private void loadProfilePic () {
124133 Glide .with (mContext ).load (mSharedPreferences .getString (PROFILE_PIC_URL , "" ))
125- .override ( 150 , 150 )
134+ .asBitmap ( )
126135 .fitCenter ()
127- .crossFade ()
128136 .diskCacheStrategy (DiskCacheStrategy .ALL )
129- .error (R .mipmap .ic_launcher )
130- .into (profileImg );
131-
132- changeSignInSignOutOption ();
137+ .error (R .drawable .default_avatar )
138+ .into (new BitmapImageViewTarget (profileImg ) {
139+ @ Override
140+ protected void setResource (Bitmap resource ) {
141+ RoundedBitmapDrawable circularBitmapDrawable =
142+ RoundedBitmapDrawableFactory .create (mContext .getResources (), resource );
143+ circularBitmapDrawable .setCircular (true );
144+ profileImg .setImageDrawable (circularBitmapDrawable );
145+ }
146+ });
133147 }
134148
135149 private void changeSignInSignOutOption () {
136150 Menu menu = navigationView .getMenu ();
137151 MenuItem sign_in_out_item = menu .findItem (R .id .nav_sign_in_out );
138152 if (checkIfLoggedIn ()) {
139153 sign_in_out_item .setTitle (R .string .sign_out );
154+ sign_in_out_item .setIcon (this .getResources ().getDrawable (R .drawable .sign_out ));
140155 } else {
141156 sign_in_out_item .setTitle (R .string .sign_in );
157+ sign_in_out_item .setIcon (this .getResources ().getDrawable (R .drawable .sign_in ));
142158 }
143159 }
144160
@@ -233,27 +249,27 @@ public void onBackPressed() {
233249 }
234250 }
235251
236- @ Override
237- public boolean onCreateOptionsMenu (Menu menu ) {
238- // Inflate the menu; this adds items to the action bar if it is present.
239- getMenuInflater ().inflate (R .menu .main , menu );
240- return true ;
241- }
242-
243- @ Override
244- public boolean onOptionsItemSelected (MenuItem item ) {
245- // Handle action bar item clicks here. The action bar will
246- // automatically handle clicks on the Home/Up button, so long
247- // as you specify a parent activity in AndroidManifest.xml.
248- int id = item .getItemId ();
249-
250- //noinspection SimplifiableIfStatement
251- if (id == R .id .action_settings ) {
252- return true ;
253- }
254-
255- return super .onOptionsItemSelected (item );
256- }
252+ // @Override
253+ // public boolean onCreateOptionsMenu(Menu menu) {
254+ // // Inflate the menu; this adds items to the action bar if it is present.
255+ // getMenuInflater().inflate(R.menu.main, menu);
256+ // return true;
257+ // }
258+ //
259+ // @Override
260+ // public boolean onOptionsItemSelected(MenuItem item) {
261+ // // Handle action bar item clicks here. The action bar will
262+ // // automatically handle clicks on the Home/Up button, so long
263+ // // as you specify a parent activity in AndroidManifest.xml.
264+ // int id = item.getItemId();
265+ //
266+ // //noinspection SimplifiableIfStatement
267+ // if (id == R.id.action_settings) {
268+ // return true;
269+ // }
270+ //
271+ // return super.onOptionsItemSelected(item);
272+ // }
257273
258274 @ SuppressWarnings ("StatementWithEmptyBody" )
259275 @ Override
@@ -268,15 +284,38 @@ public boolean onNavigationItemSelected(MenuItem item) {
268284 loadAddNewPrivyActivity ();
269285 closeDrawer ();
270286 } else if (id == R .id .nav_sign_in_out ) {
271- if (checkIfLoggedIn ())
287+ if (checkIfLoggedIn ()) {
272288 signOut ();
273- else
289+ } else {
274290 startGoogleSignInActivity (RC_SIGN_IN );
291+ }
292+ } else if (id == R .id .nav_share ) {
293+ shareApp ();
294+ closeDrawer ();
295+ } else if (id == R .id .nav_feedback ) {
296+ sendFeedBack ();
297+ closeDrawer ();
275298 }
276- //TODO : Add other conditions
277299 return true ;
278300 }
279301
302+ private void sendFeedBack () {
303+ Intent Email = new Intent (Intent .ACTION_SEND );
304+ Email .setType ("text/email" );
305+ Email .putExtra (Intent .EXTRA_EMAIL , new String []{getString (R .string .app_feedback_mail )});
306+ Email .putExtra (Intent .EXTRA_SUBJECT , getString (R .string .feedback_subject ));
307+ startActivity (Intent .createChooser (Email , getString (R .string .send_feedback_msg )));
308+ }
309+
310+ private void shareApp () {
311+ Intent sendIntent = new Intent ();
312+ sendIntent .setAction (Intent .ACTION_SEND );
313+ sendIntent .putExtra (Intent .EXTRA_TEXT ,
314+ getString (R .string .social_share_msg ));
315+ sendIntent .setType ("text/plain" );
316+ startActivity (sendIntent );
317+ }
318+
280319 private void closeDrawer () {
281320 DrawerLayout drawer = (DrawerLayout ) findViewById (R .id .drawer_layout );
282321 drawer .closeDrawer (GravityCompat .START );
@@ -285,7 +324,8 @@ private void closeDrawer() {
285324 @ Override
286325 protected void onPostResume () {
287326 super .onPostResume ();
288- loadMapFragment ();
327+ // if(checkLocationEnabledPermission())
328+ // loadMapFragment();
289329 }
290330
291331 @ Override
@@ -352,7 +392,6 @@ private void handleSignInResult(GoogleSignInResult result) {
352392 }
353393
354394 private void addLoginInfo (GoogleSignInAccount acct ) {
355- // TODO : add Profile Picture
356395 SharedPreferences .Editor editor = mSharedPreferences .edit ();
357396 editor .putBoolean (LOGGED_IN , true );
358397 if (acct .getDisplayName () != null )
@@ -403,6 +442,7 @@ private void loadAddNewPrivyActivity() {
403442 }
404443
405444 private void loadMapFragment () {
445+ navigationView .getMenu ().getItem (0 ).setChecked (true );
406446 if (!checkLocationEnabledPermission ()) {
407447 ActivityCompat .requestPermissions (this , new String []{android .Manifest .permission .ACCESS_FINE_LOCATION }, MY_PERMISSIONS_REQUEST_FINE_LOCATIONS );
408448 } else {
0 commit comments