Skip to content

Commit 3979973

Browse files
liveHarshitiamareebjamal
authored andcommitted
feat: Update settings and profile fragment for non authenticated users (#1754)
1 parent ed5bfd2 commit 3979973

File tree

5 files changed

+61
-35
lines changed

5 files changed

+61
-35
lines changed

app/src/main/java/org/fossasia/openevent/general/auth/ProfileFragment.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import kotlinx.android.synthetic.main.fragment_profile.view.logoutLL
2323
import kotlinx.android.synthetic.main.fragment_profile.view.manageEventsLL
2424
import kotlinx.android.synthetic.main.fragment_profile.view.settingsLL
2525
import kotlinx.android.synthetic.main.fragment_profile.view.ticketIssuesLL
26+
import kotlinx.android.synthetic.main.fragment_profile.view.loginButton
2627
import org.fossasia.openevent.general.CircleTransform
2728
import org.fossasia.openevent.general.R
2829
import org.fossasia.openevent.general.utils.Utils
@@ -41,7 +42,7 @@ class ProfileFragment : Fragment() {
4142

4243
private fun redirectToLogin() {
4344
findNavController(rootView).navigate(ProfileFragmentDirections
44-
.actionProfileToLogin(getString(R.string.log_in_first))
45+
.actionProfileToLogin()
4546
)
4647
}
4748

@@ -51,9 +52,13 @@ class ProfileFragment : Fragment() {
5152

5253
override fun onStart() {
5354
super.onStart()
54-
if (!profileViewModel.isLoggedIn()) {
55-
redirectToLogin()
56-
}
55+
handleLayoutVisibility(profileViewModel.isLoggedIn())
56+
}
57+
58+
private fun handleLayoutVisibility(isLoggedIn: Boolean) {
59+
rootView.editProfileRL.isVisible = isLoggedIn
60+
rootView.logoutLL.isVisible = isLoggedIn
61+
rootView.loginButton.isVisible = !isLoggedIn
5762
}
5863

5964
override fun onCreateView(
@@ -93,7 +98,7 @@ class ProfileFragment : Fragment() {
9398
}
9499
})
95100

96-
fetchProfile()
101+
if (profileViewModel.isLoggedIn()) fetchProfile()
97102

98103
rootView.manageEventsLL.setOnClickListener { startOrgaApp("com.eventyay.organizer") }
99104

@@ -106,6 +111,7 @@ class ProfileFragment : Fragment() {
106111
}
107112

108113
rootView.logoutLL.setOnClickListener { showLogoutDialog() }
114+
rootView.loginButton.setOnClickListener { redirectToLogin() }
109115

110116
return rootView
111117
}

app/src/main/java/org/fossasia/openevent/general/settings/SettingsFragment.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,21 @@ class SettingsFragment : PreferenceFragmentCompat(), PreferenceChangeListener {
5656
setHasOptionsMenu(true)
5757

5858
// Set Email
59-
preferenceScreen.findPreference(getString(R.string.key_profile))
60-
.summary = safeArgs.email
59+
preferenceScreen.findPreference(getString(R.string.key_account))
60+
.summary = if (safeArgs.email.isNullOrEmpty()) getString(R.string.not_logged_in) else safeArgs.email
6161

6262
// Set Build Version
6363
preferenceScreen.findPreference(getString(R.string.key_version))
6464
.title = "Version " + BuildConfig.VERSION_NAME
6565

6666
preferenceScreen.findPreference(getString(R.string.key_timezone_switch))
6767
.setDefaultValue(timeZonePreference.getBoolean("useEventTimeZone", false))
68+
69+
preferenceScreen.findPreference(getString(R.string.key_profile)).isVisible = profileViewModel.isLoggedIn()
70+
preferenceScreen.findPreference(getString(R.string.key_change_password)).isVisible =
71+
profileViewModel.isLoggedIn()
72+
preferenceScreen.findPreference(getString(R.string.key_timezone_switch)).isVisible =
73+
profileViewModel.isLoggedIn()
6874
}
6975

7076
override fun onPreferenceTreeClick(preference: Preference?): Boolean {

app/src/main/res/layout/fragment_profile.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,20 @@
217217
android:layout_width="wrap_content"
218218
android:layout_height="wrap_content"
219219
android:layout_gravity="center"
220+
android:visibility="gone"
220221
android:elevation="@dimen/card_elevation" />
221222

222223
</LinearLayout>
223224

225+
<com.google.android.material.button.MaterialButton
226+
android:id="@+id/loginButton"
227+
style="@style/AppTheme.MaterialButton.RoundedCorners"
228+
android:layout_width="match_parent"
229+
android:layout_height="wrap_content"
230+
android:layout_gravity="bottom"
231+
android:layout_margin="@dimen/layout_margin_large"
232+
android:text="@string/login"
233+
android:textAllCaps="false"/>
234+
224235
</androidx.coordinatorlayout.widget.CoordinatorLayout>
225236
</ScrollView>

app/src/main/res/values/strings.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
<string name="user_name">Username</string>
5454
<string name="logout">Log out</string>
5555
<string name="settings">Settings</string>
56-
<string name="login">Login</string>
56+
<string name="login">Log In</string>
5757
<string name="forgot_password">I forgot my password</string>
5858
<string name="email_sent_message">We just sent you an email with a link to reset\nyour password </string>
5959
<string name="email_sent_alert">Check your email!</string>
@@ -162,6 +162,7 @@
162162
<string name="key_version">version</string>
163163
<string name="key_about">about</string>
164164
<string name="key_rating">rating</string>
165+
<string name="key_account">account</string>
165166
<string name="rating_settings">Rate Us</string>
166167
<string name="app_name_capital" translatable="false">Open Event Android</string>
167168
<string name="suggestion_settings">Suggest Improvement</string>
@@ -188,6 +189,7 @@
188189
<string name="legal">Legal</string>
189190
<string name="visit_website">Visit Website</string>
190191
<string name="key_visit_website">Visit_Website</string>
192+
<string name="not_logged_in">No account logged in</string>
191193

192194
<!--settings profile dialog-->
193195
<string name="message">Are you sure you want to log out?</string>

app/src/main/res/xml/settings.xml

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,13 @@
22
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto">
44
<PreferenceCategory
5-
android:key="@string/key_about"
6-
android:title="@string/about"
7-
app:iconSpaceReserved="false">
8-
9-
<Preference
10-
android:key="@string/key_visit_website"
11-
android:title="@string/visit_website"
12-
app:iconSpaceReserved="false" />
13-
14-
<Preference
15-
android:key="@string/key_rating"
16-
android:title="@string/rating_settings"
17-
app:iconSpaceReserved="false" />
18-
19-
<Preference
20-
android:key="@string/key_suggestion"
21-
android:title="@string/suggestion_settings"
22-
app:iconSpaceReserved="false" />
23-
24-
</PreferenceCategory>
25-
26-
<PreferenceCategory
27-
android:title="@string/profile"
5+
android:title="@string/logged_in_account"
6+
android:key="@string/key_account"
287
app:iconSpaceReserved="false">
298

309
<Preference
3110
android:key="@string/key_profile"
32-
android:title="@string/logged_in_account"
11+
android:title="@string/profile"
3312
app:iconSpaceReserved="false" />
3413

3514
<Preference
@@ -45,13 +24,25 @@
4524
</PreferenceCategory>
4625

4726
<PreferenceCategory
48-
android:title="@string/app_name_capital"
27+
android:key="@string/key_about"
28+
android:title="@string/about"
4929
app:iconSpaceReserved="false">
5030

5131
<Preference
52-
android:key="@string/key_version"
53-
android:title="@string/version_settings"
32+
android:key="@string/key_visit_website"
33+
android:title="@string/visit_website"
5434
app:iconSpaceReserved="false" />
35+
36+
<Preference
37+
android:key="@string/key_rating"
38+
android:title="@string/rating_settings"
39+
app:iconSpaceReserved="false" />
40+
41+
<Preference
42+
android:key="@string/key_suggestion"
43+
android:title="@string/suggestion_settings"
44+
app:iconSpaceReserved="false" />
45+
5546
</PreferenceCategory>
5647

5748
<PreferenceCategory
@@ -73,4 +64,14 @@
7364
android:title="@string/cookie_policy"
7465
app:iconSpaceReserved="false" />
7566
</PreferenceCategory>
67+
68+
<PreferenceCategory
69+
android:title="@string/app_name_capital"
70+
app:iconSpaceReserved="false">
71+
72+
<Preference
73+
android:key="@string/key_version"
74+
android:title="@string/version_settings"
75+
app:iconSpaceReserved="false" />
76+
</PreferenceCategory>
7677
</PreferenceScreen>

0 commit comments

Comments
 (0)