Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
InstiApp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
RAHUL SHARMA
InstiApp
Commits
412b3e97
Commit
412b3e97
authored
Jul 01, 2018
by
Sajal Narang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement logout functionality, fix #57
parent
834237cd
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
83 additions
and
2 deletions
+83
-2
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/MainActivity.java
...c/main/java/in/ac/iitb/gymkhana/iitbapp/MainActivity.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/SessionManager.java
...main/java/in/ac/iitb/gymkhana/iitbapp/SessionManager.java
+6
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/api/RetrofitInterface.java
...va/in/ac/iitb/gymkhana/iitbapp/api/RetrofitInterface.java
+3
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/SettingsFragment.java
...n/ac/iitb/gymkhana/iitbapp/fragment/SettingsFragment.java
+69
-0
app/src/main/res/layout/fragment_settings.xml
app/src/main/res/layout/fragment_settings.xml
+4
-0
No files found.
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/MainActivity.java
View file @
412b3e97
...
...
@@ -262,7 +262,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
bundle
.
putString
(
Constants
.
SESSION_ID
,
session
.
pref
.
getString
(
Constants
.
SESSION_ID
,
"Error"
));
if
(
fragment
instanceof
MessMenuFragment
)
bundle
.
putString
(
Constants
.
USER_HOSTEL
,
currentUser
.
getHostel
());
if
(
fragment
instanceof
SettingsFragment
)
if
(
fragment
instanceof
SettingsFragment
&&
session
.
isLoggedIn
()
)
bundle
.
putString
(
Constants
.
USER_ID
,
currentUser
.
getUserID
());
fragment
.
setArguments
(
bundle
);
FragmentManager
manager
=
getSupportFragmentManager
();
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/SessionManager.java
View file @
412b3e97
...
...
@@ -17,7 +17,6 @@ public class SessionManager {
public
SessionManager
(
Context
context
)
{
this
.
context
=
context
;
pref
=
context
.
getSharedPreferences
(
Constants
.
PREF_NAME
,
PRIVATE_MODE
);
editor
=
pref
.
edit
();
}
public
void
checkLogin
()
{
...
...
@@ -34,6 +33,7 @@ public class SessionManager {
public
void
createLoginSession
(
String
gcmId
,
User
currentUser
,
String
sessionID
)
{
Log
.
d
(
"SessionManager"
,
"GcmId being stored"
);
editor
=
pref
.
edit
();
editor
.
putBoolean
(
Constants
.
IS_LOGGED_IN
,
true
);
editor
.
putString
(
Constants
.
GCM_ID
,
gcmId
);
editor
.
putString
(
Constants
.
CURRENT_USER
,
currentUser
.
toString
());
...
...
@@ -48,4 +48,9 @@ public class SessionManager {
public
boolean
isLoggedIn
()
{
return
pref
.
getBoolean
(
Constants
.
IS_LOGGED_IN
,
false
);
}
public
void
logout
()
{
editor
=
pref
.
edit
();
editor
.
clear
().
commit
();
}
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/api/RetrofitInterface.java
View file @
412b3e97
...
...
@@ -61,6 +61,9 @@ public interface RetrofitInterface {
@GET
(
"news"
)
Call
<
List
<
NewsArticle
>>
getNews
(
@Header
(
"Cookie"
)
String
sessionID
);
@GET
(
"logout"
)
Call
<
Void
>
logout
(
@Header
(
"Cookie"
)
String
sessionID
);
// @POST("getNotifications/")
// Call<NotificationsResponse> getNotifications(@Body NotificationsRequest notificationsRequest);
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/SettingsFragment.java
View file @
412b3e97
package
in.ac.iitb.gymkhana.iitbapp.fragment
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentManager
;
import
android.support.v4.app.FragmentTransaction
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.Button
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
com.squareup.picasso.Picasso
;
import
in.ac.iitb.gymkhana.iitbapp.Constants
;
import
in.ac.iitb.gymkhana.iitbapp.LoginActivity
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
import
in.ac.iitb.gymkhana.iitbapp.SessionManager
;
import
in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface
;
import
in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator
;
import
in.ac.iitb.gymkhana.iitbapp.data.User
;
...
...
@@ -41,6 +48,7 @@ public class SettingsFragment extends Fragment {
public
void
onStart
()
{
super
.
onStart
();
Bundle
bundle
=
getArguments
();
String
userID
=
bundle
.
getString
(
Constants
.
USER_ID
);
RetrofitInterface
retrofitInterface
=
ServiceGenerator
.
createService
(
RetrofitInterface
.
class
);
...
...
@@ -66,5 +74,66 @@ public class SettingsFragment extends Fragment {
Picasso
.
with
(
getContext
()).
load
(
user
.
getUserProfilePictureUrl
()).
into
(
userProfilePictureImageView
);
userNameTextView
.
setText
(
user
.
getUserName
());
Button
updateProfileButton
=
getActivity
().
findViewById
(
R
.
id
.
settings_update_profile
);
Button
feedbackButton
=
getActivity
().
findViewById
(
R
.
id
.
settings_feedback
);
Button
aboutButton
=
getActivity
().
findViewById
(
R
.
id
.
settings_about
);
Button
logoutButton
=
getActivity
().
findViewById
(
R
.
id
.
settings_logout
);
updateProfileButton
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
openWebURL
(
"https://gymkhana.iitb.ac.in/sso/user"
);
}
});
feedbackButton
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
openWebURL
(
"https://insti.app/feedback"
);
}
});
aboutButton
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
AboutFragment
aboutFragment
=
new
AboutFragment
();
FragmentManager
manager
=
getActivity
().
getSupportFragmentManager
();
FragmentTransaction
transaction
=
manager
.
beginTransaction
();
transaction
.
setCustomAnimations
(
R
.
anim
.
slide_in_left
,
R
.
anim
.
slide_out_left
,
R
.
anim
.
slide_in_right
,
R
.
anim
.
slide_out_right
);
transaction
.
replace
(
R
.
id
.
framelayout_for_fragment
,
aboutFragment
,
aboutFragment
.
getTag
());
transaction
.
addToBackStack
(
aboutFragment
.
getTag
()).
commit
();
}
});
logoutButton
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
RetrofitInterface
retrofitInterface
=
ServiceGenerator
.
createService
(
RetrofitInterface
.
class
);
retrofitInterface
.
logout
(
"sessionid="
+
getArguments
().
getString
(
Constants
.
SESSION_ID
)).
enqueue
(
new
Callback
<
Void
>()
{
@Override
public
void
onResponse
(
Call
<
Void
>
call
,
Response
<
Void
>
response
)
{
if
(
response
.
isSuccessful
())
{
SessionManager
sessionManager
=
new
SessionManager
(
getContext
());
sessionManager
.
logout
();
Intent
intent
=
new
Intent
(
getContext
(),
LoginActivity
.
class
);
startActivity
(
intent
);
getActivity
().
finish
();
}
//Server Error
}
@Override
public
void
onFailure
(
Call
<
Void
>
call
,
Throwable
t
)
{
//Network Error
}
});
}
});
}
private
void
openWebURL
(
String
URL
)
{
Intent
browse
=
new
Intent
(
Intent
.
ACTION_VIEW
,
Uri
.
parse
(
URL
));
startActivity
(
browse
);
}
}
app/src/main/res/layout/fragment_settings.xml
View file @
412b3e97
...
...
@@ -44,6 +44,7 @@
</android.support.v7.widget.CardView>
<Button
android:id=
"@+id/settings_update_profile"
style=
"@style/Widget.AppCompat.Button.Borderless"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
...
...
@@ -56,6 +57,7 @@
android:textSize=
"20sp"
/>
<Button
android:id=
"@+id/settings_feedback"
style=
"@style/Widget.AppCompat.Button.Borderless"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
...
...
@@ -68,6 +70,7 @@
android:textSize=
"20sp"
/>
<Button
android:id=
"@+id/settings_about"
style=
"@style/Widget.AppCompat.Button.Borderless"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
...
...
@@ -80,6 +83,7 @@
android:textSize=
"20sp"
/>
<Button
android:id=
"@+id/settings_logout"
style=
"@style/Widget.AppCompat.Button.Borderless"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment