Skip to content

Commit

Permalink
changes on handling user sign in/up
Browse files Browse the repository at this point in the history
  • Loading branch information
dkoukoul committed Sep 3, 2020
1 parent e0b008b commit c07a816
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 11 deletions.
6 changes: 6 additions & 0 deletions app/src/main/java/co/anode/anodium/AccountMainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,12 @@ class AccountMainActivity : AppCompatActivity() {
val msg = jsonObj.getString("message")
Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
} else if (jsonObj.has("accountConfirmationStatusUrl")){ //initial email response
val prefs = getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
with (prefs.edit()) {
putBoolean("SignedIn",true)
putBoolean("Registered",true)
commit()
}
val accountConfirmation = jsonObj.getString("accountConfirmationStatusUrl")
val verificationActivity = Intent(applicationContext, VerificationActivity::class.java)
verificationActivity.putExtra("accountConfirmationStatusUrl", accountConfirmation)
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/co/anode/anodium/AccountNicknameActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,15 @@ class AccountNicknameActivity : AppCompatActivity() {
}
}

override fun onBackPressed() {
val prefs = getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
with (prefs.edit()) {
putBoolean("NicknameActivity_BackPressed",true)
commit()
}
finish()
}

abstract class TextViewLinkHandler : LinkMovementMethod() {
override fun onTouchEvent(widget: TextView, buffer: Spannable, event: MotionEvent): Boolean {
if (event.action != MotionEvent.ACTION_UP) return super.onTouchEvent(widget, buffer, event)
Expand Down Expand Up @@ -151,6 +160,8 @@ class AccountNicknameActivity : AppCompatActivity() {
val prefs = getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
with (prefs.edit()) {
putString("username",username)
putBoolean("SignedIn",true)
putBoolean("Registered",false)
putString("passwordRecoveryToken",passwordRecoveryToken)
commit()
}
Expand Down
5 changes: 2 additions & 3 deletions app/src/main/java/co/anode/anodium/AnodeClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,7 @@ object AnodeClient {
override fun onPostExecute(result: String?) {
super.onPostExecute(result)
Log.i(LOGTAG,"Received from $API_LOGOUT_URL: $result")
if ((!result.isNullOrBlank()) && (!result.contains("500"))) {
if ((!result.isNullOrBlank()) && ((!result.contains("500")) && (!result.contains("404")))) {
val jsonObj = JSONObject(result)
if (jsonObj.has("status")) {
if (jsonObj.getString("status") == "success") {
Expand All @@ -645,10 +645,9 @@ object AnodeClient {
val prefs = mycontext.getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
with(prefs.edit()) {
putBoolean("SignedIn", false)
putString("username", "")
putBoolean("Registered", false)
commit()
}
(mainActivity as MainActivity).setUsernameTopBar()
}
}
} else {
Expand Down
52 changes: 44 additions & 8 deletions app/src/main/java/co/anode/anodium/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,6 @@ class MainActivity : AppCompatActivity() {
}
mHandlerTask.run()
*/

Thread(Runnable {
Log.i(LOGTAG, "MainActivity.UploadErrorsThread startup")
while (true) {
Expand Down Expand Up @@ -206,25 +205,44 @@ class MainActivity : AppCompatActivity() {
//Remove sign in and sign up from menu
if (mainMenu != null) {
mainMenu!!.findItem(R.id.action_signin).setVisible(false)
mainMenu!!.findItem(R.id.action_account_settings).setVisible(false)
//mainMenu!!.findItem(R.id.action_account_settings).setVisible(false)
mainMenu!!.findItem(R.id.action_logout).setVisible(true)
}
//Set username on title
//this.title = "Anodium - $username"
} else {
topUsername.text = ""
//Add sign in and sing up to menu
if (mainMenu != null) {
mainMenu!!.findItem(R.id.action_signin).setVisible(true)
mainMenu!!.findItem(R.id.action_account_settings).setVisible(true)
//mainMenu!!.findItem(R.id.action_account_settings).setVisible(true)
mainMenu!!.findItem(R.id.action_logout).setVisible(false)
}
}
}

override fun onResume() {
super.onResume()

val prefs = getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
val signedin = prefs.getBoolean("SignedIn", false)
val nickname_backpressed = prefs.getBoolean("NicknameActivity_BackPressed", false)
val signin_backpressed = prefs.getBoolean("SignInActivity_BackPressed", false)
//Exit app if user is not signed in
if (!signedin and (nickname_backpressed or signin_backpressed)) {
with (prefs.edit()) {
putBoolean("NicknameActivity_BackPressed",false)
putBoolean("SignInActivity_BackPressed",false)
commit()
}
//Close app
finishAffinity()
System.exit(0)
}
setUsernameTopBar()
//Show/Hide Registration on menu
if (mainMenu != null) {
mainMenu!!.findItem(R.id.action_account_settings).setVisible(!prefs.getBoolean("Registered",false))
}
}

override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present.
Expand All @@ -239,9 +257,15 @@ class MainActivity : AppCompatActivity() {
// as you specify a parent activity in AndroidManifest.xml.
val id = item.itemId
if (id == R.id.action_account_settings) {
Log.i(LOGTAG, "Start nickname activity")
val accountNicknameActivity = Intent(applicationContext, AccountNicknameActivity::class.java)
startActivity(accountNicknameActivity)
Log.i(LOGTAG, "Start registration")
val prefs = getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
if (prefs.getString("username","").isNullOrEmpty()) {
val accountNicknameActivity = Intent(applicationContext, AccountNicknameActivity::class.java)
startActivity(accountNicknameActivity)
} else {
val accountMainActivity = Intent(applicationContext, AccountMainActivity::class.java)
startActivityForResult(accountMainActivity, 0)
}
return true
} else if (id == R.id.action_signin) {
Log.i(LOGTAG, "Start sign in activity")
Expand Down Expand Up @@ -269,6 +293,9 @@ class MainActivity : AppCompatActivity() {
} else if (id == R.id.action_logout) {
Log.i(LOGTAG, "Log out")
AnodeClient.LogoutUser().execute()
//On Log out start sign in activity
val signinActivity = Intent(AnodeClient.mycontext, SignInActivity::class.java)
startActivity(signinActivity)
return true
} else {
super.onOptionsItemSelected(item)
Expand All @@ -280,10 +307,11 @@ class MainActivity : AppCompatActivity() {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
//Initialize CJDNS socket
CjdnsSocket.init(anodeUtil!!.CJDNS_PATH + "/" + anodeUtil!!.CJDROUTE_SOCK)
CjdnsSocket.init(anodeUtil!!.CJDNS_PATH + "/" + anodeUtil!!.CJDROUTE_SOCK)
}
//On first run show nickname activity
val prefs = getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
/*
if (prefs.getBoolean("FirstRun", true)) {
Log.i(LOGTAG, "First run: Start nickname activity")
with(prefs.edit()) {
Expand All @@ -292,6 +320,14 @@ class MainActivity : AppCompatActivity() {
}
val accountNicknameActivity = Intent(applicationContext, AccountNicknameActivity::class.java)
startActivity(accountNicknameActivity)
}*/
//If there is no username stored
if (prefs.getString("username","").isNullOrEmpty()) {
val accountNicknameActivity = Intent(applicationContext, AccountNicknameActivity::class.java)
startActivity(accountNicknameActivity)
} else if (!prefs.getBoolean("SignedIn", false)) {
val signinActivity = Intent(applicationContext, SignInActivity::class.java)
startActivity(signinActivity)
}
}

Expand Down
9 changes: 9 additions & 0 deletions app/src/main/java/co/anode/anodium/SignInActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,15 @@ class SignInActivity : AppCompatActivity() {
}
}

override fun onBackPressed() {
val prefs = getSharedPreferences("co.anode.anodium", Context.MODE_PRIVATE)
with (prefs.edit()) {
putBoolean("SignInActivity_BackPressed",true)
commit()
}
finish()
}

abstract class TextViewLinkHandler : LinkMovementMethod() {
override fun onTouchEvent(widget: TextView, buffer: Spannable, event: MotionEvent): Boolean {
if (event.action != MotionEvent.ACTION_UP) return super.onTouchEvent(widget, buffer, event)
Expand Down

0 comments on commit c07a816

Please sign in to comment.