Android 用户未登录,仍在获取主页
我想在用户第一次登录和第二次登录时显示Android 用户未登录,仍在获取主页,android,Android,我想在用户第一次登录和第二次登录时显示Splash screen->Login screen->Home screen 当我从设备关闭应用程序并再次打开它时,如果用户已经登录,将显示主屏幕,如果我确实注销,将转到登录屏幕。但我没有得到这个流,这是我的代码 启动屏幕 public static boolean isDataSet; private boolean isPassPhraseCall; private ImageView imgLauncher; private String curr
Splash screen->Login screen->Home screen
当我从设备关闭应用程序并再次打开它时,如果用户已经登录,将显示主屏幕,如果我确实注销,将转到登录屏幕。但我没有得到这个流,这是我的代码
启动屏幕
public static boolean isDataSet;
private boolean isPassPhraseCall;
private ImageView imgLauncher;
private String currency = "";
private ProgressBar progressSplash;
private static int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
try {
/*Set Theme before View Created*/
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
// Bind IDs with xml
setIDs();
if(SalesApplication.welcomeShown)
{
startActivity(new Intent(SplashActivity.this, LoginActivity.class));
}
else
{
Intent i = new Intent(SplashActivity.this,HomeActivity.class);
startActivity(i);
}
LogToastUtils.ShowLog(Constants.TAG+"IN SLASH=====");
// LogToastUtils.ShowLog(Constants.TAG+"VALUE OF PREFS====="+StoreSharedPreference.getString(PREF_FIRST_TIME, ""));
// setRedirectionEvent();
imgLauncher.setImageResource(R.mipmap.ic_launcher);
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
//Validation for logout
Intent intent = getIntent();
Boolean finish = intent.getBooleanExtra("finish",false); //
if (finish) {
SharedPreferences settings = getSharedPreferences("prefs", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("firstRun", true);
editor.commit();
startActivity(new Intent(SplashActivity.this, LoginActivity.class));
finish();
return;
}
else
{
Intent i = new Intent(SplashActivity.this, HomeActivity.class);
startActivity(i);
}
//Intent i = new Intent(SplashActivity.this, LoginActivity.class);
//startActivity(i);
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
//
imgLauncher.setImageResource(R.mipmap.ic_launcher);
} catch (Exception e) {
e.printStackTrace();
imgLauncher.setImageResource(R.mipmap.ic_launcher);
}
}
/* setIDs method offer to Bind View with Xml layout's ids.
*/
private void setIDs() {
imgLauncher = (ImageView) findViewById(R.id.img_launcher);
progressSplash = (ProgressBar) findViewById(R.id.progress_splash);
}
/**
* setRedirectionEvent method redirect Activity
*/
private void setRedirectionEvent() {
try {
StoreSharedPreference.init(getApplicationContext());
// For first time screen open redirect to User Permission Else Main Activity
if (StoreSharedPreference.getString(PREF_FIRST_TIME, "").equals("")) {
// Set permission get for first time screen open
StoreSharedPreference.putString(PREF_FIRST_TIME, PREF_FIRST_TIME_STRING);
Intent intentPermission = new Intent(getApplicationContext(), PasswordActivity.class);
startActivity(intentPermission);
finish();
} else {
Intent intentMain = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intentMain);
finish();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
}
package com.example.abhishek.myapplication;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputEditText;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.example.abhishek.myapplication.database.UserDataBase;
import com.example.abhishek.myapplication.dto.userDTO;
import com.example.abhishek.myapplication.helper.Constants;
import com.example.abhishek.myapplication.request.RequestHandler;
import com.example.abhishek.myapplication.utils.LogToastUtils;
import com.example.abhishek.myapplication.utils.StoreSharedPreference;
import com.example.abhishek.myapplication.views.LayoutRipple;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Pattern;
import static com.example.abhishek.myapplication.helper.Constants.OTP_INFORMATIVE;
import static com.example.abhishek.myapplication.helper.Constants.OTP_TEXT;
import static com.example.abhishek.myapplication.helper.Constants.OTP_TYPE;
import static com.example.abhishek.myapplication.helper.Constants.PREF_FIRST_TIME;
import static com.example.abhishek.myapplication.helper.Constants.PREF_FIRST_TIME_STRING;
import static com.example.abhishek.myapplication.helper.Constants.SENDER_ID;
import static com.example.abhishek.myapplication.helper.Constants.SERVER_URL;
import static com.example.abhishek.myapplication.helper.Constants.USER_NAME;
import static com.example.abhishek.myapplication.helper.Constants.USER_PASSWORDD;
public class LoginActivity extends AppCompatActivity {
//Declaration
ImageView imageViewLogo;
TextView tvSignup, tvContinue;
TextInputEditText edtMobileNumer;
private static String mobileNumber;
private String pinNumber;
Boolean validPhone;
private TextInputLayout txtInputLayout;
private List<userDTO> userDTOList = new ArrayList<>();
LinearLayout llAccountDialogLayout, llLogin;
private LayoutRipple lrYes, lrNo;
ProgressBar pbProgressDialog;
private Boolean found = false;
//flag for is authorized mobile
//0 = authorized
//1 = Unauthorized
private UserDataBase userDataBase;
public static userDTO userDTO;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//Set id of controls here
setIds();
userDTO = new userDTO();
userDTOList.clear();
//Databbase Initialization
userDataBase = new UserDataBase(getApplicationContext());
//Click event of all controls
setOnClick();
}
private void setIds() {
imageViewLogo = (ImageView) findViewById(R.id.img_logo);
tvSignup = (TextView) findViewById(R.id.tv_signup);
tvContinue = (TextView) findViewById(R.id.tv_continue);
txtInputLayout = (TextInputLayout) findViewById(R.id.text_input_login_email_number);
edtMobileNumer = (TextInputEditText) findViewById(R.id.et_login_email_number);
llAccountDialogLayout = (LinearLayout) findViewById(R.id.ll_account_dialog_layout);
lrYes = (LayoutRipple) findViewById(R.id.lr_yes);
lrNo = (LayoutRipple) findViewById(R.id.lr_no);
pbProgressDialog = (ProgressBar) findViewById(R.id.pb_progress_dialog);
llLogin = (LinearLayout) findViewById(R.id.ll_login);
}
private void setOnClick() {
tvContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mobileNumber = edtMobileNumer.getText().toString();
StoreSharedPreference.init(LoginActivity.this);
StoreSharedPreference.putString("PinNumber", pinNumber);
txtInputLayout.setErrorEnabled(false);
if (!mobileNumber.equals("")) {
validPhone = isValidMobile(mobileNumber);
if (validPhone) {
userDTOList = userDataBase.getData();
LogToastUtils.ShowLog(Constants.TAG + "SIZE OF USERLIST" + userDTOList.size());
if (userDTOList.size() > 0) {
for (int i = 0; i < userDTOList.size(); i++) {
userDTO = userDTOList.get(i);
LogToastUtils.ShowLog(Constants.TAG + "Mobile number from db===" + userDTOList.get(i).getMobilenumber());
LogToastUtils.ShowLog(Constants.TAG + "Authorized from db===" + userDTOList.get(i).getIsAuthorized());
LogToastUtils.ShowLog("Mobile number is===" + mobileNumber);
if (userDTO.getMobilenumber() == Long.parseLong(mobileNumber)) {
LogToastUtils.ShowLog(Constants.TAG + "Mobile number exists");
userDTO.setIsAuthorized(0);
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
// userDTOList.add(userDTO);
userDataBase.addData(userDTO);
found = true;
} else {
LogToastUtils.ShowLog("POSITION IS===" + i);
userDTO.setIsAuthorized(1);
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
// userDTOList.add(userDTO);
userDataBase.addData(userDTO);
LogToastUtils.ShowLog(Constants.TAG + "Mobile number not exists");
}
}
if (found) {
Intent intent = new Intent(LoginActivity.this, PasswordActivity.class);
intent.putExtra("finish", true);
startActivity(intent);
} else {
llAccountDialogLayout.setVisibility(View.VISIBLE);
llLogin.setVisibility(View.GONE);
tvContinue.setVisibility(View.GONE);
}
} else {
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
userDTO.setIsAuthorized(1);
userDataBase.addData(userDTO);
}
} else {
txtInputLayout.setErrorEnabled(true);
txtInputLayout.setError("Enter valid data");
}
}
}
});
lrYes.setOnRippleCompleteListener(new LayoutRipple.OnRippleCompleteListener() {
@Override
public void onComplete(LayoutRipple layoutRipple) {
generatePIN();
pbProgressDialog.setVisibility(View.VISIBLE);
llLogin.setVisibility(View.GONE);
tvContinue.setVisibility(View.GONE);
loginApiCall(mobileNumber, pinNumber);
}
});
lrNo.setOnRippleCompleteListener(new LayoutRipple.OnRippleCompleteListener() {
@Override
public void onComplete(LayoutRipple layoutRipple) {
finish();
}
});
}
private void loginApiCall(final String mobileNumber, final String pinNumber) {
class RegisterUser extends AsyncTask<Void, Void, String> {
private ProgressBar progressBar;
@Override
protected String doInBackground(Void... voids) {
//creating request handler object
RequestHandler requestHandler = new RequestHandler();
//creating request parameters
HashMap<String, String> params = new HashMap<>();
params.put("username", USER_NAME);
params.put("password", USER_PASSWORDD);
params.put("senderid", SENDER_ID);
params.put("to", mobileNumber);
params.put("text", OTP_TEXT + pinNumber);
params.put("route", OTP_INFORMATIVE);
params.put("type", OTP_TYPE);
//returing the response
return requestHandler.sendPostRequest(SERVER_URL, params);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
//displaying the progress bar while user registers on the server
progressBar = (ProgressBar) findViewById(R.id.pb_progress_dialog);
progressBar.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//hiding the progressbar after completion
progressBar.setVisibility(View.GONE);
pbProgressDialog.setVisibility(View.GONE);
userDTOList = userDataBase.getData();
try {
LogToastUtils.ShowLog("Response string===" + s);
if (s.equals("ERROR incorrect username or password (or user disabled)")) {
LogToastUtils.ShowLog("IN ERROR===" + s);
} else {
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
userDTO.setIsAuthorized(1);
userDTOList.add(userDTO);
userDataBase.addData(userDTO);
Intent i = new Intent(LoginActivity.this, PasswordActivity.class);
i.putExtra("finish", true);
i.putExtra("mobileNumber", mobileNumber);
startActivity(i);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//executing the async task
RegisterUser ru = new RegisterUser();
ru.execute();
}
public void generatePIN() {
//generate a 4 digit integer 1000 <10000
int randomPIN = (int) (Math.random() * 9000) + 1000;
//Store integer in a string
pinNumber = String.valueOf(randomPIN);
LogToastUtils.ShowLog("OTP IS====" + pinNumber);
}
private boolean isValidMobile(String phone) {
boolean check = false;
if (!Pattern.matches("[a-zA-Z]+", phone)) {
LogToastUtils.ShowLog("Length===" + phone.length());
if (phone.length() != 10) {
check = false;
txtInputLayout.setError("Not Valid Number");
} else {
check = true;
}
} else {
check = false;
}
return check;
}
}
public class HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private static ActionBarDrawerToggle toggle;
public static DrawerLayout drawer;
private static android.support.v7.widget.Toolbar toolbar;
//Fragment HomeFragment;
NavigationView navigationView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setId();
SalesApplication.welcomeShown = true;
FragmentTransaction tx = HomeActivity.this.getSupportFragmentManager().beginTransaction();
tx.replace(R.id.fragment_main, new HomeFragment());
tx.commit();
navigationView.setNavigationItemSelectedListener(this);
setNavigationDrawerView();
}
private void setId() {
navigationView = findViewById(R.id.nav_view);
drawer = findViewById(R.id.drawer_layout);
toolbar = findViewById(R.id.toolbar);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
//Category page
case R.id.nav_item_category:
Utils.changeFragment(R.id.fragment_main, new CategoryFragment(), getSupportFragmentManager(), null, "");
break;
//Whishlist page
case R.id.nav_item_wishlist:
Utils.changeFragment(R.id.fragment_main, new WishListFragment(), getSupportFragmentManager(), null, "");
break;
//About us page
case R.id.nav_item_aboutus:
Utils.changeFragment(R.id.fragment_main, new AboutUsFragment(), getSupportFragmentManager(), null, "");
break;
//Contact us page
case R.id.nav_item_contactus:
Utils.changeFragment(R.id.fragment_main, new ContactUsFragment(), getSupportFragmentManager(), null, "");
break;
//Help
case R.id.nav_item_help:
break;
//Signout
case R.id.nav_item_signout:
// StoreSharedPreference.ClearPreference();
//SalesApplication.welcomeShown = true;
Intent intent = new Intent(this, SplashActivity.class);
intent.putExtra("finish", true);
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // To clean up all activities
startActivity(intent);
finish();
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
public void setNavigationDrawerView() {
toggle = new ActionBarDrawerToggle(HomeActivity.this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
@Override
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, 0); // this disables the animation
}
};
drawer.setDrawerListener(toggle);
toggle.syncState();
}
}
Password screen
TextInputEditText edtPassword;
TextInputLayout txtInputPassword;
private String password;
private LayoutRipple lrSubmit;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password);
StoreSharedPreference.init(this);
setIds();
StoreSharedPreference.putString("Password===",password);
lrSubmit.setOnRippleCompleteListener(new LayoutRipple.OnRippleCompleteListener() {
@Override
public void onComplete(LayoutRipple layoutRipple) {
password= edtPassword.getText().toString();
if(edtPassword.getText().toString().length()<8 &&!isValidPassword(edtPassword.getText().toString())){
System.out.println("Not Valid");
txtInputPassword.setError("Enter Valid Password");
}else{
System.out.println("Valid");
Intent i = new Intent(PasswordActivity.this,HomeActivity.class);
startActivity(i);
}
}
});
}
private void setIds()
{
lrSubmit = (LayoutRipple)findViewById(R.id.lr_submit);
txtInputPassword = (TextInputLayout)findViewById(R.id.text_input_login_password);
edtPassword = (TextInputEditText) findViewById(R.id.et_login_password);
}
public static boolean isValidPassword(final String password) {
Pattern pattern;
Matcher matcher;
final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[A-Z])(?=.*[@#$%^&+=!])(?=\\S+$).{4,}$";
pattern = Pattern.compile(PASSWORD_PATTERN);
matcher = pattern.matcher(password);
return matcher.matches();
}
登录屏幕
public static boolean isDataSet;
private boolean isPassPhraseCall;
private ImageView imgLauncher;
private String currency = "";
private ProgressBar progressSplash;
private static int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
try {
/*Set Theme before View Created*/
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
// Bind IDs with xml
setIDs();
if(SalesApplication.welcomeShown)
{
startActivity(new Intent(SplashActivity.this, LoginActivity.class));
}
else
{
Intent i = new Intent(SplashActivity.this,HomeActivity.class);
startActivity(i);
}
LogToastUtils.ShowLog(Constants.TAG+"IN SLASH=====");
// LogToastUtils.ShowLog(Constants.TAG+"VALUE OF PREFS====="+StoreSharedPreference.getString(PREF_FIRST_TIME, ""));
// setRedirectionEvent();
imgLauncher.setImageResource(R.mipmap.ic_launcher);
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
//Validation for logout
Intent intent = getIntent();
Boolean finish = intent.getBooleanExtra("finish",false); //
if (finish) {
SharedPreferences settings = getSharedPreferences("prefs", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("firstRun", true);
editor.commit();
startActivity(new Intent(SplashActivity.this, LoginActivity.class));
finish();
return;
}
else
{
Intent i = new Intent(SplashActivity.this, HomeActivity.class);
startActivity(i);
}
//Intent i = new Intent(SplashActivity.this, LoginActivity.class);
//startActivity(i);
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
//
imgLauncher.setImageResource(R.mipmap.ic_launcher);
} catch (Exception e) {
e.printStackTrace();
imgLauncher.setImageResource(R.mipmap.ic_launcher);
}
}
/* setIDs method offer to Bind View with Xml layout's ids.
*/
private void setIDs() {
imgLauncher = (ImageView) findViewById(R.id.img_launcher);
progressSplash = (ProgressBar) findViewById(R.id.progress_splash);
}
/**
* setRedirectionEvent method redirect Activity
*/
private void setRedirectionEvent() {
try {
StoreSharedPreference.init(getApplicationContext());
// For first time screen open redirect to User Permission Else Main Activity
if (StoreSharedPreference.getString(PREF_FIRST_TIME, "").equals("")) {
// Set permission get for first time screen open
StoreSharedPreference.putString(PREF_FIRST_TIME, PREF_FIRST_TIME_STRING);
Intent intentPermission = new Intent(getApplicationContext(), PasswordActivity.class);
startActivity(intentPermission);
finish();
} else {
Intent intentMain = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intentMain);
finish();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
}
package com.example.abhishek.myapplication;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputEditText;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.example.abhishek.myapplication.database.UserDataBase;
import com.example.abhishek.myapplication.dto.userDTO;
import com.example.abhishek.myapplication.helper.Constants;
import com.example.abhishek.myapplication.request.RequestHandler;
import com.example.abhishek.myapplication.utils.LogToastUtils;
import com.example.abhishek.myapplication.utils.StoreSharedPreference;
import com.example.abhishek.myapplication.views.LayoutRipple;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Pattern;
import static com.example.abhishek.myapplication.helper.Constants.OTP_INFORMATIVE;
import static com.example.abhishek.myapplication.helper.Constants.OTP_TEXT;
import static com.example.abhishek.myapplication.helper.Constants.OTP_TYPE;
import static com.example.abhishek.myapplication.helper.Constants.PREF_FIRST_TIME;
import static com.example.abhishek.myapplication.helper.Constants.PREF_FIRST_TIME_STRING;
import static com.example.abhishek.myapplication.helper.Constants.SENDER_ID;
import static com.example.abhishek.myapplication.helper.Constants.SERVER_URL;
import static com.example.abhishek.myapplication.helper.Constants.USER_NAME;
import static com.example.abhishek.myapplication.helper.Constants.USER_PASSWORDD;
public class LoginActivity extends AppCompatActivity {
//Declaration
ImageView imageViewLogo;
TextView tvSignup, tvContinue;
TextInputEditText edtMobileNumer;
private static String mobileNumber;
private String pinNumber;
Boolean validPhone;
private TextInputLayout txtInputLayout;
private List<userDTO> userDTOList = new ArrayList<>();
LinearLayout llAccountDialogLayout, llLogin;
private LayoutRipple lrYes, lrNo;
ProgressBar pbProgressDialog;
private Boolean found = false;
//flag for is authorized mobile
//0 = authorized
//1 = Unauthorized
private UserDataBase userDataBase;
public static userDTO userDTO;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//Set id of controls here
setIds();
userDTO = new userDTO();
userDTOList.clear();
//Databbase Initialization
userDataBase = new UserDataBase(getApplicationContext());
//Click event of all controls
setOnClick();
}
private void setIds() {
imageViewLogo = (ImageView) findViewById(R.id.img_logo);
tvSignup = (TextView) findViewById(R.id.tv_signup);
tvContinue = (TextView) findViewById(R.id.tv_continue);
txtInputLayout = (TextInputLayout) findViewById(R.id.text_input_login_email_number);
edtMobileNumer = (TextInputEditText) findViewById(R.id.et_login_email_number);
llAccountDialogLayout = (LinearLayout) findViewById(R.id.ll_account_dialog_layout);
lrYes = (LayoutRipple) findViewById(R.id.lr_yes);
lrNo = (LayoutRipple) findViewById(R.id.lr_no);
pbProgressDialog = (ProgressBar) findViewById(R.id.pb_progress_dialog);
llLogin = (LinearLayout) findViewById(R.id.ll_login);
}
private void setOnClick() {
tvContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mobileNumber = edtMobileNumer.getText().toString();
StoreSharedPreference.init(LoginActivity.this);
StoreSharedPreference.putString("PinNumber", pinNumber);
txtInputLayout.setErrorEnabled(false);
if (!mobileNumber.equals("")) {
validPhone = isValidMobile(mobileNumber);
if (validPhone) {
userDTOList = userDataBase.getData();
LogToastUtils.ShowLog(Constants.TAG + "SIZE OF USERLIST" + userDTOList.size());
if (userDTOList.size() > 0) {
for (int i = 0; i < userDTOList.size(); i++) {
userDTO = userDTOList.get(i);
LogToastUtils.ShowLog(Constants.TAG + "Mobile number from db===" + userDTOList.get(i).getMobilenumber());
LogToastUtils.ShowLog(Constants.TAG + "Authorized from db===" + userDTOList.get(i).getIsAuthorized());
LogToastUtils.ShowLog("Mobile number is===" + mobileNumber);
if (userDTO.getMobilenumber() == Long.parseLong(mobileNumber)) {
LogToastUtils.ShowLog(Constants.TAG + "Mobile number exists");
userDTO.setIsAuthorized(0);
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
// userDTOList.add(userDTO);
userDataBase.addData(userDTO);
found = true;
} else {
LogToastUtils.ShowLog("POSITION IS===" + i);
userDTO.setIsAuthorized(1);
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
// userDTOList.add(userDTO);
userDataBase.addData(userDTO);
LogToastUtils.ShowLog(Constants.TAG + "Mobile number not exists");
}
}
if (found) {
Intent intent = new Intent(LoginActivity.this, PasswordActivity.class);
intent.putExtra("finish", true);
startActivity(intent);
} else {
llAccountDialogLayout.setVisibility(View.VISIBLE);
llLogin.setVisibility(View.GONE);
tvContinue.setVisibility(View.GONE);
}
} else {
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
userDTO.setIsAuthorized(1);
userDataBase.addData(userDTO);
}
} else {
txtInputLayout.setErrorEnabled(true);
txtInputLayout.setError("Enter valid data");
}
}
}
});
lrYes.setOnRippleCompleteListener(new LayoutRipple.OnRippleCompleteListener() {
@Override
public void onComplete(LayoutRipple layoutRipple) {
generatePIN();
pbProgressDialog.setVisibility(View.VISIBLE);
llLogin.setVisibility(View.GONE);
tvContinue.setVisibility(View.GONE);
loginApiCall(mobileNumber, pinNumber);
}
});
lrNo.setOnRippleCompleteListener(new LayoutRipple.OnRippleCompleteListener() {
@Override
public void onComplete(LayoutRipple layoutRipple) {
finish();
}
});
}
private void loginApiCall(final String mobileNumber, final String pinNumber) {
class RegisterUser extends AsyncTask<Void, Void, String> {
private ProgressBar progressBar;
@Override
protected String doInBackground(Void... voids) {
//creating request handler object
RequestHandler requestHandler = new RequestHandler();
//creating request parameters
HashMap<String, String> params = new HashMap<>();
params.put("username", USER_NAME);
params.put("password", USER_PASSWORDD);
params.put("senderid", SENDER_ID);
params.put("to", mobileNumber);
params.put("text", OTP_TEXT + pinNumber);
params.put("route", OTP_INFORMATIVE);
params.put("type", OTP_TYPE);
//returing the response
return requestHandler.sendPostRequest(SERVER_URL, params);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
//displaying the progress bar while user registers on the server
progressBar = (ProgressBar) findViewById(R.id.pb_progress_dialog);
progressBar.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//hiding the progressbar after completion
progressBar.setVisibility(View.GONE);
pbProgressDialog.setVisibility(View.GONE);
userDTOList = userDataBase.getData();
try {
LogToastUtils.ShowLog("Response string===" + s);
if (s.equals("ERROR incorrect username or password (or user disabled)")) {
LogToastUtils.ShowLog("IN ERROR===" + s);
} else {
userDTO.setMobilenumber(Long.parseLong(mobileNumber));
userDTO.setIsAuthorized(1);
userDTOList.add(userDTO);
userDataBase.addData(userDTO);
Intent i = new Intent(LoginActivity.this, PasswordActivity.class);
i.putExtra("finish", true);
i.putExtra("mobileNumber", mobileNumber);
startActivity(i);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//executing the async task
RegisterUser ru = new RegisterUser();
ru.execute();
}
public void generatePIN() {
//generate a 4 digit integer 1000 <10000
int randomPIN = (int) (Math.random() * 9000) + 1000;
//Store integer in a string
pinNumber = String.valueOf(randomPIN);
LogToastUtils.ShowLog("OTP IS====" + pinNumber);
}
private boolean isValidMobile(String phone) {
boolean check = false;
if (!Pattern.matches("[a-zA-Z]+", phone)) {
LogToastUtils.ShowLog("Length===" + phone.length());
if (phone.length() != 10) {
check = false;
txtInputLayout.setError("Not Valid Number");
} else {
check = true;
}
} else {
check = false;
}
return check;
}
}
public class HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private static ActionBarDrawerToggle toggle;
public static DrawerLayout drawer;
private static android.support.v7.widget.Toolbar toolbar;
//Fragment HomeFragment;
NavigationView navigationView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setId();
SalesApplication.welcomeShown = true;
FragmentTransaction tx = HomeActivity.this.getSupportFragmentManager().beginTransaction();
tx.replace(R.id.fragment_main, new HomeFragment());
tx.commit();
navigationView.setNavigationItemSelectedListener(this);
setNavigationDrawerView();
}
private void setId() {
navigationView = findViewById(R.id.nav_view);
drawer = findViewById(R.id.drawer_layout);
toolbar = findViewById(R.id.toolbar);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
//Category page
case R.id.nav_item_category:
Utils.changeFragment(R.id.fragment_main, new CategoryFragment(), getSupportFragmentManager(), null, "");
break;
//Whishlist page
case R.id.nav_item_wishlist:
Utils.changeFragment(R.id.fragment_main, new WishListFragment(), getSupportFragmentManager(), null, "");
break;
//About us page
case R.id.nav_item_aboutus:
Utils.changeFragment(R.id.fragment_main, new AboutUsFragment(), getSupportFragmentManager(), null, "");
break;
//Contact us page
case R.id.nav_item_contactus:
Utils.changeFragment(R.id.fragment_main, new ContactUsFragment(), getSupportFragmentManager(), null, "");
break;
//Help
case R.id.nav_item_help:
break;
//Signout
case R.id.nav_item_signout:
// StoreSharedPreference.ClearPreference();
//SalesApplication.welcomeShown = true;
Intent intent = new Intent(this, SplashActivity.class);
intent.putExtra("finish", true);
//intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // To clean up all activities
startActivity(intent);
finish();
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
public void setNavigationDrawerView() {
toggle = new ActionBarDrawerToggle(HomeActivity.this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
@Override
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, 0); // this disables the animation
}
};
drawer.setDrawerListener(toggle);
toggle.syncState();
}
}
Password screen
TextInputEditText edtPassword;
TextInputLayout txtInputPassword;
private String password;
private LayoutRipple lrSubmit;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password);
StoreSharedPreference.init(this);
setIds();
StoreSharedPreference.putString("Password===",password);
lrSubmit.setOnRippleCompleteListener(new LayoutRipple.OnRippleCompleteListener() {
@Override
public void onComplete(LayoutRipple layoutRipple) {
password= edtPassword.getText().toString();
if(edtPassword.getText().toString().length()<8 &&!isValidPassword(edtPassword.getText().toString())){
System.out.println("Not Valid");
txtInputPassword.setError("Enter Valid Password");
}else{
System.out.println("Valid");
Intent i = new Intent(PasswordActivity.this,HomeActivity.class);
startActivity(i);
}
}
});
}
private void setIds()
{
lrSubmit = (LayoutRipple)findViewById(R.id.lr_submit);
txtInputPassword = (TextInputLayout)findViewById(R.id.text_input_login_password);
edtPassword = (TextInputEditText) findViewById(R.id.et_login_password);
}
public static boolean isValidPassword(final String password) {
Pattern pattern;
Matcher matcher;
final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[A-Z])(?=.*[@#$%^&+=!])(?=\\S+$).{4,}$";
pattern = Pattern.compile(PASSWORD_PATTERN);
matcher = pattern.matcher(password);
return matcher.matches();
}
package com.example.abhishek.myapplication;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.design.widget.text输入文本;
导入android.support.design.widget.TextInputLayout;
导入android.support.v7.app.AppActivity;
导入android.util.Log;
导入android.view.view;
导入android.widget.ImageView;
导入android.widget.LinearLayout;
导入android.widget.ProgressBar;
导入android.widget.TextView;
导入com.example.abhishek.myapplication.database.UserDataBase;
导入com.example.abhishek.myapplication.dto.userDTO;
导入com.example.abhishek.myapplication.helper.Constants;
导入com.example.abhishek.myapplication.request.RequestHandler;
导入com.example.abhishek.myapplication.utils.LogToastUtils;
导入com.example.abhishek.myapplication.utils.StoreSharedReference;
导入com.example.abhishek.myapplication.views.layoututripple;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.regex.Pattern;
导入静态com.example.abhishek.myapplication.helper.Constants.OTP_;
导入静态com.example.abhishek.myapplication.helper.Constants.OTP_TEXT;
导入静态com.example.abhishek.myapplication.helper.Constants.OTP_TYPE;
首次导入静态com.example.abhishek.myapplication.helper.Constants.PREF_;
导入静态com.example.abhishek.myapplication.helper.Constants.PREF_FIRST_TIME_字符串;
导入静态com.example.abhishek.myapplication.helper.Constants.SENDER\u ID;
导入静态com.example.abhishek.myapplication.helper.Constants.SERVER\u URL;
导入静态com.example.abhishek.myapplication.helper.Constants.USER_NAME;
导入静态com.example.abhishek.myapplication.helper.Constants.USER_PASSWORDD;
公共类LoginActivity扩展了AppCompatActivity{
//声明
ImageView图标;
text查看电视注册,电视继续;
textinputtext-edtMobileNumer;
私有静态字符串;
私有字符串pinNumber;
布尔有效音素;
私有文本输入布局txtInputLayout;
private List userDTOList=new ArrayList();
LinearLayout llAccountDialogLayout,llLogin;
私人停车场轻轨是,轻轨号;
ProgressBar-pbProgressDialog;
找到的私有布尔值=false;
//授权移动的标志
//0=授权
//1=未经授权
私有用户数据库;
公共静态userDTO userDTO;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
//在此设置控件的id
setIds();
userDTO=新的userDTO();
userDTOList.clear();
//数据库初始化
userDataBase=新的userDataBase(getApplicationContext());
//单击所有控件的事件
setOnClick();
}
私有void setIds(){
imageViewLogo=(ImageView)findViewById(R.id.img_徽标);
tvSignup=(TextView)findviewbyd(R.id.tv\u注册);
tvContinue=(TextView)findViewById(R.id.tv\u continue);
txtInputLayout=(TextInputLayout)findViewById(R.id.text\u input\u login\u email\u number);
edtMobileNumer=(textInputItemText)findViewById(R.id.et\u登录\电子邮件\号码);
llAccountDialogLayout=(LinearLayout)findViewById(R.id.ll\u account\u dialog\u layout);
lrYes=(LayoutRipple)findViewById(R.id.lr_yes);
lrNo=(LayoutRipple)findViewById(R.id.lr_no);
pbProgressDialog=(ProgressBar)findViewById(R.id.pb\u progress\u dialog);
llLogin=(LinearLayout)findviewbyd(R.id.ll\u login);
}
私有void setOnClick(){
tvContinue.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
mobileNumber=edtMobileNumer.getText().toString();
StoreSharedPreference.init(LoginActivity.this);
StoreSharedPreference.putString(“PinNumber”,PinNumber);
TXInputLayout.setErrorEnabled(false);
如果(!mobileNumber.equals(“”){
validPhone=isValidMobile(移动电话号码);
如果(有效电话){
userDTOList=userDataBase.getData();
LogToastUtils.ShowLog(Constants.TAG+“用户列表的大小”+userDTOList.SIZE());
如果(userDTOList.size()>0){
对于(int i=0;iSharedPreferences settings = getSharedPreferences("prefs", 0);
SharedPreferences.Editor editor = settings.edit();
//Do a check if this exists.
// if the user is logged in, continue to main activity.
if (pref.getBoolean("loggedIn", null)) {
//continue to main activity.
} else {
editor.put("loggedIn", false);
editor.commit();
// Go into the login/splash (whatever you need).
}
editor.put("loggedIn", true);
editor.commit();
// Go into the main activity for logged in users.
//Do a check if this exists.
if (pref.getBoolean("loggedIn", null)) {
editor.put("loggedIn", false);
editor.commit();
// Go into the login/splash (whatever you need).
}