Ahmed
Ahmed
Ankara
24/02/2016 tarihinden beri üye
30 GY Puanı
71K GY Sırası

Kişisel Sayfaları

İlgi Alanları

1 Rozet
0 Sertifika
0 Soru Sordu
1 Cevap Verdi
0 Blog Yazısı
0 Etiket Takibi

Hakkında

İş Tecrubesi

Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.

Eğitim Geçmişi

Karabük Üniversitesi
| Aralık 2020 - Aralık 2020

Sertifikalar & Başarılar

GY Sertifikaları (0)
Kullanıcının GY sertifikası bulunmamaktadır.
Diğer Sertifikaları (0)
Kullanıcıya ait sertifika bulunmamaktadır.
Test Sonuçları (0)

Kullanıcıya ait test sonucu bulunmamaktadır.

Dil Becerileri

Son Forum Aktiviteleri

1
Tümünü Gör

Kullanıcıya ait forum aktivitesi bulunmamaktadır.

Aynı Activity içinde İki AsyncTask Arası iletişimi sağlama?

24 Şubat 2016 tarihinde cevaplandı
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.net.UnknownHostException;
import java.net.UnknownServiceException;
import java.util.Calendar;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import info.androidhive.view.Position;
import info.androidhive.view.SwipeBack;


@SuppressWarnings("ALL")
public class Dogrudanyazin extends Activity  {
    private static final String username = "halithatice4603@gmail.com";

    private static final String password = "**********";

    private EditText emailEdit;

    private EditText subjectEdit;

    private EditText messageEdit;

    private EditText nameEdit;

    private EditText surnameEdit;

    private EditText tcEdit;

    private EditText telEdit;

    String email ;

    String gonderenemail;

    String name;

    String surname;

    String subject;

    String message;

    String tckn;

    String tel;

    String regexStr = "^[+]?[0-9]{10,13}$";

    boolean isTCKNvalid = false;




    // FloatingActionButton facebook,twitter,youtube;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        //Activityi sağa doğru kaydırınca animasyonlu bir şekilde kapatır
        SwipeBack.attach(this, Position.LEFT)

                .setSwipeBackView(R.layout.swipeback_default);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dogrudanyazin);

        final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;


        Spinner birthDateSpinner = (Spinner) findViewById(R.id.birthDateSpinner);
        int startYear = Calendar.getInstance().get(Calendar.YEAR);
        int endYear = 1900;
        String[] birthyears =  new String[startYear-endYear];

        int count = 0;
        for (int i = startYear; i > endYear; i--) {
            birthyears[count] = Integer.toString(i);
            count++;

        }

        ArrayAdapter adapterForBirthDate = new ArrayAdapter(this, android.R.layout.simple_spinner_item, birthyears);


        adapterForBirthDate.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        birthDateSpinner.setAdapter(adapterForBirthDate);



        emailEdit = (EditText) findViewById(R.id.editText_eposta);
        subjectEdit = (EditText)findViewById(R.id.editText_konu);
        messageEdit = (EditText) findViewById(R.id.editText_ileti);
        nameEdit= (EditText) findViewById(R.id.editText_isim);
        surnameEdit= (EditText) findViewById(R.id.editText_soyisim);

        tcEdit= (EditText) findViewById(R.id.editText_tc);
        telEdit=(EditText) findViewById(R.id.editText_telno);

        // Button sendButton = (Button) findViewById(R.id.button_gonder);

       /* final FrameLayout frameLayout = (FrameLayout) findViewById(R.id.frame);
        // frameLayout.getBackground().setAlpha(0);
        final FloatingActionsMenu fabMenu = (FloatingActionsMenu) findViewById(R.id.fab_menu);
        facebook=(FloatingActionButton)findViewById(R.id.fab_face);
        twitter=(FloatingActionButton)findViewById(R.id.fab_twitter);
        youtube=(FloatingActionButton)findViewById(R.id.fab_youtube);

        facebook.setOnClickListener(this);
        twitter.setOnClickListener(this);
        youtube.setOnClickListener(this);

        fabMenu.setOnFloatingActionsMenuUpdateListener(new FloatingActionsMenu.OnFloatingActionsMenuUpdateListener() {

            @Override
            public void onMenuExpanded() {
                //   frameLayout.getBackground().setAlpha(240);
                frameLayout.setEnabled(false);
                frameLayout.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        fabMenu.collapse();
                        return true;
                    }
                });
            }

            @Override
            public void onMenuCollapsed() {

                //  frameLayout.getBackground().setAlpha(0);
                frameLayout.setOnTouchListener(null);
            }
        });*/




        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

        fab.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                EditText tcknArea = (EditText) findViewById(R.id.editText_tc);
                String tckn = tcknArea.getText().toString().trim();
                EditText nameArea = (EditText) findViewById(R.id.editText_isim);
                String name = nameArea.getText().toString().trim();
                EditText surnameArea = (EditText) findViewById(R.id.editText_soyisim);
                String surname = surnameArea.getText().toString().trim();
                Spinner birthDateSpinner = (Spinner) findViewById(R.id.birthDateSpinner);
                String year = birthDateSpinner.getSelectedItem().toString();

                if (checkInternetConnection()) {
                    if (name.isEmpty() || surname.isEmpty() || tckn.isEmpty()) {
                        Toast.makeText(Dogrudanyazin.this, "Lütfen gerekli alanları doldurunuz", Toast.LENGTH_SHORT).show();
                    } else {
                        new controlTCKNService().execute(tckn, name, surname, year);
                    }
                } else {
                    Toast.makeText(Dogrudanyazin.this, "Lütfen internet bağlantınızı kontrol ediniz", Toast.LENGTH_SHORT).show();
                }
                
                controlTCKN();


                email = "enhesapliburda@gmail.com";
                gonderenemail = emailEdit.getText().toString();
                name = nameEdit.getText().toString();
                surname = surnameEdit.getText().toString();
                subject = subjectEdit.getText().toString();
                message = messageEdit.getText().toString();
                tckn = tcEdit.getText().toString();
                tel = telEdit.getText().toString();


               
            }
        });


    }

    private static final String NAMESPACE = "http://tckimlik.nvi.gov.tr/WS";
    private static final String URL = "https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL";
    private static final String SOAP_ACTION = "http://tckimlik.nvi.gov.tr/WS/TCKimlikNoDogrula";
    private static final String METHOD_NAME = "TCKimlikNoDogrula";


    public void controlTCKN () {

        EditText tcknArea = (EditText) findViewById(R.id.editText_tc);
        String tckn = tcknArea.getText().toString().trim();
        EditText nameArea = (EditText) findViewById(R.id.editText_isim);
        String name = nameArea.getText().toString().trim();
        EditText surnameArea = (EditText) findViewById(R.id.editText_soyisim);
        String surname = surnameArea.getText().toString().trim();
        Spinner birthDateSpinner = (Spinner) findViewById(R.id.birthDateSpinner);
        String year = birthDateSpinner.getSelectedItem().toString();

        if(checkInternetConnection()){
            if(name.isEmpty() || surname.isEmpty() ||  tckn.isEmpty()){
                Toast.makeText(Dogrudanyazin.this,"Lütfen gerekli alanları doldurunuz", Toast.LENGTH_SHORT).show();
            }else {
                new controlTCKNService().execute(tckn, name, surname, year);
            }
        } else {
            Toast.makeText(Dogrudanyazin.this,"Lütfen internet bağlantınızı kontrol ediniz", Toast.LENGTH_SHORT).show();
        }

    }
    private boolean checkInternetConnection() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        boolean result = false;
        // test for connection
        if (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isAvailable() && cm.getActiveNetworkInfo().isConnected()) {
            result = true;
        } else {
            result = false;
        }
        return result;
    }
    public void clearFields (View view) {

        EditText tcknArea = (EditText) findViewById(R.id.editText_tc);
        EditText nameArea = (EditText) findViewById(R.id.editText_isim);
        EditText surnameArea = (EditText) findViewById(R.id.editText_soyisim);
        Spinner birthDateSpinner = (Spinner) findViewById(R.id.birthDateSpinner);

        tcknArea.setText("");
        nameArea.setText("");
        surnameArea.setText("");
        birthDateSpinner.setSelection(0);

    }

    public void aboutTCKN(View view){

        AlertDialog alertDialog = new AlertDialog.Builder(this).create();
        alertDialog.setTitle(R.string.about_app);
        alertDialog.setMessage("Bu uygulama T.C. Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü tarafından kullanıma sunulan web servisi üzerinden doğrulama yapmaktadır.");

        alertDialog.setButton("Tamam", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {

                //here you can add functions

            } });
        alertDialog.show();


    }

    private class controlTCKNService extends AsyncTask<String, Void, Void> {
        private String resultText;
        private boolean result;
        private ProgressDialog progressDialog = new ProgressDialog(Dogrudanyazin.this);
        private AlertDialog.Builder builder = new AlertDialog.Builder(Dogrudanyazin.this);

        AlertDialog alert;
        protected void onPreExecute() {
            progressDialog.setMessage("Kontrol ediliyor...");
            progressDialog.show();


        }

        protected Void doInBackground(String... urls) {
            SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
            Request.addProperty("TCKimlikNo",urls[0]);
            Request.addProperty("Ad", urls[1].toUpperCase());
            Request.addProperty("Soyad", urls[2].toUpperCase());
            Request.addProperty("DogumYili", urls[3]);


            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(Request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

            try
            {
                androidHttpTransport.call(SOAP_ACTION, envelope);
                SoapObject response = (SoapObject) envelope.bodyIn;
                result = Boolean.parseBoolean( response.getProperty(0).toString());
                if(result) {
                    resultText = getString(R.string.result_tckn_valid);
                    isTCKNvalid = true;

                }else{
                    resultText = getString(R.string.result_tckn_invalid);
                    isTCKNvalid = false;

                }
            }
            catch(ClassCastException e)
            {
                result = false;
                resultText = getString(R.string.result_tckn_invalid);
            }
            catch(ConnectException e)
            {
                result = false;
                resultText = getString(R.string.result_connection_error);
            }
            catch (UnknownHostException e) {
                result = false;
                resultText = getString(R.string.result_connection_error);
            }
            catch (UnknownServiceException e) {
                result = false;
                resultText = getString(R.string.result_connection_error);
            }
            catch(Exception e)
            {
                result = false;
                resultText = getString(R.string.result_unknown_error)+e.toString();
            }

            return null;
        }

        protected void onPostExecute(Void unused) {

            if(isTCKNvalid) {
                sendMail(email, subject, message);
            }

            progressDialog.dismiss();
            alert = builder.setMessage(resultText)
                    .setCancelable(true)
                    .setTitle("Sonuç")


                    .setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            // MyActivity.this.finish();
                        }
                    }).create();
            alert.show();

        }

    }








    // validating email id
    public static boolean isValidEmail(String email) {


        Pattern pattern = Pattern.compile("[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
                "\\@" +
                "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
                "(" +
                "\\." +
                "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
                ")+");
        Matcher matcher = pattern.matcher(email);
        if (matcher.matches())
        {
            String country_code = email.substring(email.lastIndexOf(".")+1);
            if(country_code.length() >= 2)
                return true;
        }
        return false;
    }


    // validating email id
  /*  private boolean isValidName(String name) {
        String USERNAME_PATTERN = "[a-zA-Z0-9]{1,250}";
        Pattern pattern = Pattern.compile(USERNAME_PATTERN);
        Matcher matcher = pattern.matcher(name);
        return matcher.matches();
    }*/



    private void sendMail(String email, String subject, String messageBody) {
       

        if (!isValidEmail(gonderenemail) || gonderenemail.isEmpty() || name.isEmpty() || surname.isEmpty() || subject.isEmpty() || message.isEmpty() || tckn.isEmpty() || tel.isEmpty()) {

            final String gonderenemail = emailEdit.getText().toString();
            if (!isValidEmail(gonderenemail)) {
                emailEdit.setError("Lütfen geçerli bir mail adresi giriniz!");
            }


            if (telEdit.getText().toString().length() < 10 || tel.length() > 13 || tel.matches(regexStr) == false) {
                telEdit.setError("Lütfen telefon numaranızı düzgün giriniz!");
                // am_checked=0;
            }


            Snackbar.make(arg0, "Tüm alanları doğru bir şekilde doldurunuz!", Snackbar.LENGTH_LONG).setAction("Action", null).show();
        } else if (isNetworkAvailable() == false) {
            Snackbar.make(arg0, "Bir hata oluştu! Lütfen internet bağlantınızı kontrol edip tekrar deneyiniz..", Snackbar.LENGTH_LONG).setAction("Action", null).show();
        } else {
            message = message + "\n\n\n\n" + "Gönderen e-mail: " + gonderenemail + "\n\n\n" + " Gönderen kişinin adı:" + name + "\n\n" + "Gönderen kişinin soyadı:" + surname + "\n\n" + "T.C Kimlik Numarası:" + tckn + "\n" + " Telefon Numarası:" + tel;

            Session session = createSessionObject();


            try {
                javax.mail.Message message = createMessage(email, subject, messageBody, session);
                new SendMailTask().execute(message);
            } catch (AddressException e) {
                e.printStackTrace();
            } catch (MessagingException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            nameEdit.setText("");
            surnameEdit.setText("");
            emailEdit.setText("");
            subjectEdit.setText("");
            messageEdit.setText("");
            tcEdit.setText("");
            telEdit.setText("");

        }
    }

    private javax.mail.Message createMessage(String email, String subject, String messageBody, Session session) throws MessagingException, UnsupportedEncodingException {
        javax.mail.Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("enhesapliburda@gmail.com", name));
        message.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(email, email));
        message.setSubject(subject);
        message.setText(messageBody);
        InternetAddress internetAddress = new InternetAddress(email);
        internetAddress.validate();

        return message;
    }

    private Session createSessionObject() {
        Properties properties = new Properties();
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");
        properties.put("mail.smtp.host", "smtp.gmail.com");
        properties.put("mail.smtp.debug", "true");
        properties.put("mail.smtp.socketFactory.fallback", "false");
        properties.put("mail.smtp.port", "587");

        return Session.getInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });
    }


   /* @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.fab_face:
                openBrowser("https://www.facebook.com/TurkcellGelecegiYazanlar");
                break;
            case R.id.fab_twitter:
                openBrowser("https://twitter.com/GelecegiYazanlr");
                break;
            case R.id.fab_youtube:
                openBrowser("https://www.youtube.com/channel/UCt03q1RpC8Jrifo88diQXnA");
                break;
        }
    }

    public void openBrowser(String url){
        Uri uri = Uri.parse(url);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);
    }*/

    private class SendMailTask extends AsyncTask<javax.mail.Message, Void, Void> {

        private String resultText;
        private boolean result;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            Toast.makeText(getApplication(), "Mail gönderiliyor...", Toast.LENGTH_SHORT).show();
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            Toast.makeText(getApplication(), "Mailiniz başarıyla gönderilmişir...", Toast.LENGTH_SHORT).show();

        }







        @Override
        protected Void doInBackground(javax.mail.Message... messages) {
            try {
                Transport.send(messages[0]);
            } catch (MessagingException e) {
                e.printStackTrace();
            }
            return null;
        }
    }

    public boolean isNetworkAvailable()

    {

        boolean connected = false;

        ConnectivityManager connectivityManager =

                (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

        if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState()

                == NetworkInfo.State.CONNECTED ||

                connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState()

                        == NetworkInfo.State.CONNECTED) {

            //we are connected to a network

            connected = true;

        }

        else

            connected = false;

        return connected;

    }


}