Skip to content

Instantly share code, notes, and snippets.

/BackgroundTask Secret

Created March 28, 2016 18:06
Show Gist options
  • Save anonymous/efc3400df01a0b972a71 to your computer and use it in GitHub Desktop.
Save anonymous/efc3400df01a0b972a71 to your computer and use it in GitHub Desktop.
/**
* Created by * on 25/03/2016.
*/
public class BackgroundTask extends AsyncTask<String, Void, String> {
String register = "http://***/register.php";
String login = "http://***/login.php";
Context ctx;
Activity activity;
AlertDialog.Builder builder;
ProgressDialog progressDialog;
public BackgroundTask(Context ctx){
this.ctx = ctx;
activity = (Activity)ctx;
}
@Override
protected void onPreExecute() {
builder = new AlertDialog.Builder(activity);
progressDialog = new ProgressDialog(ctx);
progressDialog.setTitle("Wait...");
progressDialog.setMessage("Connection to server");
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(false);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
String method = params[0];
if (method.equals("register")){
try {
URL url = new URL(register);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String mail = params[1];
String name = params[2];
String password = params[3];
String data = URLEncoder.encode("mail", "UTF-8")+"="+URLEncoder.encode(mail, "UTF-8")+"&"+
URLEncoder.encode("name", "UTF-8")+"="+URLEncoder.encode(name, "UTF-8")+"&"+
URLEncoder.encode("password", "UTF-8")+"="+URLEncoder.encode(password, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line = "";
while ( (line=bufferedReader.readLine())!=null ){
stringBuilder.append(line+"\n");
}
httpURLConnection.disconnect();;
Thread.sleep(5000);
return stringBuilder.toString().trim();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
else if(method.equals("login")){
try {
URL url = new URL(login);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String mail, password;
mail = params[1];
password = params[2];
String data = URLEncoder.encode("mail", "UTF-8")+"="+URLEncoder.encode(mail, "UTF-8")+"&"+
URLEncoder.encode("password", "UTF-8")+"="+URLEncoder.encode(password, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line = "";
while ( (line=bufferedReader.readLine())!=null ){
stringBuilder.append(line+"\n");
}
httpURLConnection.disconnect();;
Thread.sleep(5000);
return stringBuilder.toString().trim();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String json) {
try {
progressDialog.dismiss();
JSONObject jsonObject = new JSONObject(json);
JSONArray jsonArray = jsonObject.getJSONArray("server_response");
JSONObject jo = jsonArray.getJSONObject(0);
String code = jo.getString("code");
String message = jo.getString("message");
if (code.equals("reg_true")){
showDialog("Register succes", message, code);
}
else if (code.equals("reg_false")){
showDialog("Register fail", message, code);
}
else if (code.equals("login_true")){
Intent intent = new Intent(activity, MainActivity.class);
intent.putExtra("message", message);
activity.startActivity(intent);
//activity.finish();
}
else if (code.equals("login_false")){
showDialog("Login fail", message, code);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public void showDialog(String title, String message, String code){
builder.setTitle(title);
if (code.equals("reg_true") || code.equals("reg_false")){
builder.setMessage(message);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
activity.finish();
}
});
}
else if (code.equals("login_false")){
builder.setMessage(message);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText mail, password;
mail = (EditText) activity.findViewById(R.id.lMail);
password = (EditText) activity.findViewById(R.id.lPassword);
mail.setText("");
password.setText("");
dialog.dismiss();
}
});
}
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
}
/**
* Created by * on 25/03/2016.
*/
public class LoginActivity extends AppCompatActivity {
EditText Mail,Password;
Button Login;
TextView toRegister;
AlertDialog.Builder builder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Mail = (EditText) findViewById(R.id.lMail);
Password = (EditText) findViewById(R.id.lPassword);
Login = (Button) findViewById(R.id.bLogin);
toRegister = (TextView)findViewById(R.id.toRegister);
toRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
}
});
Login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ( Mail.getText().toString().equals("") || Password.getText().toString().equals("") ){
builder = new AlertDialog.Builder(LoginActivity.this);
builder.setTitle("Attention");
builder.setMessage("Rempliser tout les champs");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
else{
BackgroundTask bt = new BackgroundTask(LoginActivity.this);
bt.execute("login" ,Mail.getText().toString(), Password.getText().toString() );
}
}
});
}
@Override
public void onBackPressed() {
// Disable going back to the MainActivity
moveTaskToBack(true);
}
}
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
int request_code;
Toolbar toolbar;
DrawerLayout drawer;
ActionBarDrawerToggle toggle;
FragmentTransaction fragmentTransaction;
NavigationView navigationView;
UserLocalStore userLocalStore;
TextView userName, userMail;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
request_code=1;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.maintxt);
String message = getIntent().getStringExtra("message");
textView.setText(message);
userLocalStore = new UserLocalStore(this);
userName = (TextView)findViewById(R.id.userName);
userMail = (TextView)findViewById(R.id.userMail);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.main_container, new FirstFragment());
fragmentTransaction.commit();
getSupportActionBar().setTitle("Acceuil");
navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.home:
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container, new FirstFragment());
fragmentTransaction.commit();
getSupportActionBar().setTitle("Acceuil");
item.setChecked(true);
drawer.closeDrawers();
break;
case R.id.list:
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container, new SecondFragment());
fragmentTransaction.commit();
getSupportActionBar().setTitle("Second");
item.setChecked(true);
drawer.closeDrawers();
break;
case R.id.map:
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container, new ThirdFragment());
fragmentTransaction.commit();
getSupportActionBar().setTitle("Third");
item.setChecked(true);
drawer.closeDrawers();
break;
}
return false;
}
});
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void Scanner(View view){
Intent intent = new Intent(this, Scanner.class);
startActivityForResult(intent, request_code);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
if (request_code == requestCode ) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
Toast.makeText(getBaseContext(), data.getData().toString(), Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.logout:
userLocalStore.clearUserData();
userLocalStore.setUserLoggedIn(false);
startActivity(new Intent(this, LoginActivity.class));
break;
}
}
@Override
protected void onStart() {
super.onStart();
if (authenticate()) {
displayUserDetails();
}
}
private boolean authenticate() {
if (userLocalStore.getLoggedInUser() == null) {
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
return false;
}
return true;
}
private void displayUserDetails() {
User user = userLocalStore.getLoggedInUser();
userMail.setText(user.name);
userName.setText(user.mail);
}
/**
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.home) {
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container,new FirstFragment());
fragmentTransaction.commit();
getSupportActionBar().setTitle("Acceuil");
item.setChecked(true);
} else if (id == R.id.list) {
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container ,new SecondFragment());
fragmentTransaction.commit();
getSupportActionBar().setTitle("Listes");
item.setChecked(true);
} else if (id == R.id.map) {
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container,new ThirdFragment());
fragmentTransaction.commit();
getSupportActionBar().setTitle("Carte");
item.setChecked(true);
} else if (id == R.id.product) {
} else if (id == R.id.settings) {
} else if (id == R.id.share) {
}
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawers();
return true;
}
**/
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.*.comparateurL3F1">
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.LOCATION_HARDWARE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="com.example.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.permission.MAPS_RECEIVE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="***" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Dark">
</activity>
<activity
android:name=".RegisterActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Dark">
</activity>
<activity
android:name=".Scanner"
android:theme="@style/AppTheme.NoActionBar">
</activity>
</application>
</manifest>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment