├── .gitattributes ├── .gitignore ├── Android Splash Screen_Login_Signup ├── Android Main File │ ├── AndroidManifest.xml │ ├── java │ │ └── in │ │ │ └── tech2ground │ │ │ └── myapp │ │ │ ├── Login.java │ │ │ ├── MainActivity.java │ │ │ ├── Signup.java │ │ │ └── Splash_Screen.java │ └── res │ │ ├── drawable │ │ └── img.png │ │ ├── layout │ │ ├── activity_login.xml │ │ ├── activity_main.xml │ │ ├── activity_signup.xml │ │ └── activity_splash__screen.xml │ │ ├── menu │ │ └── main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml └── Login,Register Php File │ ├── login.php │ └── register.php └── Android Webview └── main ├── AndroidManifest.xml ├── java └── in │ └── grounddevelopers │ └── webapplication │ ├── MainActivity.java │ └── WebActivity.java └── res ├── layout ├── activity_main.xml └── activity_web.xml ├── mipmap-hdpi └── ic_launcher.png ├── mipmap-mdpi └── ic_launcher.png ├── mipmap-xhdpi └── ic_launcher.png ├── mipmap-xxhdpi └── ic_launcher.png ├── mipmap-xxxhdpi └── ic_launcher.png ├── values-w820dp └── dimens.xml └── values ├── colors.xml ├── dimens.xml ├── strings.xml └── styles.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /Android Splash Screen_Login_Signup/Android Main File/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 13 | 16 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Android Splash Screen_Login_Signup/Android Main File/java/in/tech2ground/myapp/Login.java: -------------------------------------------------------------------------------- 1 | package in.tech2ground.myapp; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | import android.content.SharedPreferences; 6 | import android.os.Bundle; 7 | import android.support.v7.app.AppCompatActivity; 8 | import android.view.View; 9 | import android.widget.Button; 10 | import android.widget.EditText; 11 | import android.widget.Toast; 12 | 13 | import com.android.volley.AuthFailureError; 14 | import com.android.volley.Request; 15 | import com.android.volley.RequestQueue; 16 | import com.android.volley.Response; 17 | import com.android.volley.VolleyError; 18 | import com.android.volley.toolbox.StringRequest; 19 | import com.android.volley.toolbox.Volley; 20 | 21 | import java.util.HashMap; 22 | import java.util.Map; 23 | 24 | public class Login extends AppCompatActivity { 25 | public static final String LOGIN_URL="http://rahulkr.esy.es/UserRegistration/login.php"; 26 | public static final String KEY_EMAIL="email"; 27 | public static final String KEY_PASSWORD="password"; 28 | public static final String LOGIN_SUCCESS="success"; 29 | public static final String SHARED_PREF_NAME="tech"; 30 | public static final String EMAIL_SHARED_PREF="email"; 31 | public static final String LOGGEDIN_SHARED_PREF="loggedin"; 32 | private EditText editTextEmail; 33 | private EditText editTextPassword; 34 | private Button BtnLogin; 35 | private boolean loggedIn=false; 36 | @Override 37 | protected void onCreate(Bundle savedInstanceState) { 38 | super.onCreate(savedInstanceState); 39 | setContentView(R.layout.activity_login); 40 | editTextEmail=(EditText)findViewById(R.id.editText_email); 41 | editTextPassword=(EditText)findViewById(R.id.editText_password); 42 | BtnLogin=(Button)findViewById(R.id.btn_login); 43 | BtnLogin.setOnClickListener(new View.OnClickListener() { 44 | @Override 45 | public void onClick(View v) { 46 | login(); 47 | } 48 | }); 49 | } 50 | 51 | private void login() { 52 | final String email = editTextEmail.getText().toString().trim(); 53 | final String password = editTextPassword.getText().toString().trim(); 54 | 55 | StringRequest stringRequest = new StringRequest(Request.Method.POST, LOGIN_URL, 56 | new Response.Listener() { 57 | @Override 58 | public void onResponse(String response) { 59 | if(response.trim().equalsIgnoreCase(LOGIN_SUCCESS)){ 60 | 61 | SharedPreferences sharedPreferences = Login.this.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE); 62 | 63 | SharedPreferences.Editor editor = sharedPreferences.edit(); 64 | 65 | editor.putBoolean(LOGGEDIN_SHARED_PREF, true); 66 | editor.putString(EMAIL_SHARED_PREF, email); 67 | 68 | editor.commit(); 69 | 70 | Intent intent = new Intent(Login.this, MainActivity.class); 71 | startActivity(intent); 72 | }else{ 73 | Toast.makeText(Login.this, "Invalid username or password", Toast.LENGTH_LONG).show(); 74 | } 75 | } 76 | }, 77 | new Response.ErrorListener() { 78 | @Override 79 | public void onErrorResponse(VolleyError error) { 80 | } 81 | }){ 82 | @Override 83 | protected Map getParams() throws AuthFailureError { 84 | Map prams = new HashMap<>(); 85 | prams.put(KEY_EMAIL, email); 86 | prams.put(KEY_PASSWORD, password); 87 | 88 | return prams; 89 | } 90 | }; 91 | RequestQueue requestQueue = Volley.newRequestQueue(this); 92 | requestQueue.add(stringRequest); 93 | } 94 | @Override 95 | protected void onResume() { 96 | super.onResume(); 97 | SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREF_NAME,Context.MODE_PRIVATE); 98 | loggedIn = sharedPreferences.getBoolean(LOGGEDIN_SHARED_PREF, false); 99 | if(loggedIn){ 100 | Intent intent = new Intent(Login.this, MainActivity.class); 101 | startActivity(intent); 102 | } 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /Android Splash Screen_Login_Signup/Android Main File/java/in/tech2ground/myapp/MainActivity.java: -------------------------------------------------------------------------------- 1 | package in.tech2ground.myapp; 2 | 3 | import android.content.DialogInterface; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AlertDialog; 6 | import android.support.v7.app.AppCompatActivity; 7 | import android.view.KeyEvent; 8 | import android.view.Menu; 9 | import android.view.MenuItem; 10 | public class MainActivity extends AppCompatActivity{ 11 | @Override 12 | protected void onCreate(Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.activity_main); 15 | 16 | } 17 | @Override 18 | public boolean onKeyDown(int keyCode,KeyEvent event){ 19 | 20 | if (keyCode==KeyEvent.KEYCODE_BACK){ 21 | AlertDialog.Builder alertbox=new AlertDialog.Builder(MainActivity.this); 22 | alertbox.setTitle("you Want to Exit"); 23 | alertbox.setCancelable(false); 24 | alertbox.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 25 | @Override 26 | public void onClick(DialogInterface dialog, int which) { 27 | finish(); 28 | } 29 | }); 30 | alertbox.setNegativeButton("No", new DialogInterface.OnClickListener() { 31 | @Override 32 | public void onClick(DialogInterface dialog, int which) { 33 | } 34 | }); 35 | alertbox.show(); 36 | } 37 | return super.onKeyDown(keyCode,event); 38 | } 39 | 40 | 41 | // For Option Menu 42 | @Override 43 | public boolean onCreateOptionsMenu(Menu manu){ 44 | getMenuInflater().inflate(R.menu.main, manu); 45 | return true; 46 | } 47 | 48 | @Override 49 | public boolean onOptionsItemSelected(MenuItem item){ 50 | int id=item.getItemId(); 51 | if(id==R.id.id_profile){ 52 | // Write own logic 53 | 54 | return true; 55 | } 56 | if (id==R.id.id_set){ 57 | 58 | //Write own logic 59 | return true; 60 | } 61 | return true; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Android Splash Screen_Login_Signup/Android Main File/java/in/tech2ground/myapp/Signup.java: -------------------------------------------------------------------------------- 1 | package in.tech2ground.myapp; 2 | 3 | import android.app.ProgressDialog; 4 | import android.content.Intent; 5 | import android.os.AsyncTask; 6 | import android.os.Bundle; 7 | import android.support.v7.app.AppCompatActivity; 8 | import android.view.View; 9 | import android.widget.Button; 10 | import android.widget.EditText; 11 | import android.widget.Toast; 12 | 13 | import java.io.BufferedReader; 14 | import java.io.InputStreamReader; 15 | import java.net.HttpURLConnection; 16 | import java.net.URL; 17 | 18 | public class Signup extends AppCompatActivity { 19 | EditText edit_username; 20 | EditText edit_email; 21 | EditText edit_pass; 22 | Button btn_sign; 23 | Button btn_login; 24 | private static final String REGISTER_URL="http://rahulkr.esy.es/UserRegistration/register.php"; 25 | 26 | @Override 27 | protected void onCreate(Bundle savedInstanceState) { 28 | super.onCreate(savedInstanceState); 29 | setContentView(R.layout.activity_signup); 30 | edit_username = (EditText) findViewById(R.id.id_username); 31 | edit_email = (EditText) findViewById(R.id.id_email); 32 | edit_pass = (EditText) findViewById(R.id.id_pass); 33 | btn_sign = (Button) findViewById(R.id.btn_signup); 34 | btn_sign.setOnClickListener(new View.OnClickListener() { 35 | @Override 36 | public void onClick(View v) { 37 | registerUser(); 38 | } 39 | }); 40 | btn_login=(Button)findViewById(R.id.btn_login); 41 | btn_login.setOnClickListener(new View.OnClickListener() { 42 | @Override 43 | public void onClick(View v) { 44 | Intent intentLogin=new Intent(Signup.this,Login.class); 45 | startActivity(intentLogin); 46 | } 47 | }); 48 | } 49 | 50 | private void registerUser() { 51 | String username = edit_username.getText().toString().trim().toLowerCase(); 52 | String email = edit_email.getText().toString().trim().toLowerCase(); 53 | String password = edit_pass.getText().toString().trim().toLowerCase(); 54 | register(username, password, email); 55 | } 56 | 57 | private void register(String username, String password, String email){ 58 | String urlSuffix = "?username=" + username + "&password=" + password + "&email=" + email; 59 | class RegisterUser extends AsyncTask { 60 | 61 | ProgressDialog loading; 62 | 63 | @Override 64 | protected void onPreExecute() { 65 | super.onPreExecute(); 66 | loading = ProgressDialog.show(Signup.this, "Please Wait", null, true, true); 67 | } 68 | 69 | @Override 70 | protected void onPostExecute(String s) { 71 | super.onPostExecute(s); 72 | loading.dismiss(); 73 | Toast.makeText(getApplicationContext(),"Registered", Toast.LENGTH_SHORT).show(); 74 | } 75 | 76 | @Override 77 | protected String doInBackground(String... params) { 78 | String s = params[0]; 79 | BufferedReader bufferReader=null; 80 | try { 81 | URL url=new URL(REGISTER_URL+s); 82 | HttpURLConnection con=(HttpURLConnection)url.openConnection(); 83 | bufferReader=new BufferedReader(new InputStreamReader(con.getInputStream())); 84 | String result; 85 | result=bufferReader.readLine(); 86 | return result; 87 | 88 | }catch (Exception e){ 89 | return null; 90 | } 91 | } 92 | 93 | } 94 | RegisterUser ur=new RegisterUser(); 95 | ur.execute(urlSuffix); 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /Android Splash Screen_Login_Signup/Android Main File/java/in/tech2ground/myapp/Splash_Screen.java: -------------------------------------------------------------------------------- 1 | package in.tech2ground.myapp; 2 | 3 | import android.content.Intent; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.os.Bundle; 6 | 7 | public class Splash_Screen extends AppCompatActivity { 8 | 9 | @Override 10 | protected void onCreate(Bundle savedInstanceState) { 11 | super.onCreate(savedInstanceState); 12 | setContentView(R.layout.activity_splash__screen); 13 | 14 | Thread th = new Thread() { 15 | @Override 16 | public void run() { 17 | try { 18 | sleep(3000); 19 | } catch (Exception e) { 20 | e.printStackTrace(); 21 | } finally { 22 | Intent obj = new Intent(Splash_Screen.this, Signup.class); 23 | startActivity(obj); 24 | } 25 | } 26 | 27 | }; 28 | th.start(); 29 | } 30 | 31 | @Override 32 | protected void onPause() { 33 | super.onPause(); 34 | finish(); 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /Android Splash Screen_Login_Signup/Android Main File/res/drawable/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tech2ground/Learn-Android/a6bae208270286535a01d8a04cff682125e3a13c/Android Splash Screen_Login_Signup/Android Main File/res/drawable/img.png -------------------------------------------------------------------------------- /Android Splash Screen_Login_Signup/Android Main File/res/layout/activity_login.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | 20 | 30 | 31 |