Advertisement
Guest User

Untitled

a guest
May 27th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.98 KB | None | 0 0
  1. package com.marko.horvat.telephonprobni;
  2.  
  3. import android.Manifest;
  4. import android.content.Intent;
  5. import android.content.pm.PackageManager;
  6. import android.net.Uri;
  7. import android.support.v4.app.ActivityCompat;
  8. import android.support.v4.content.ContextCompat;
  9. import android.support.v7.app.AppCompatActivity;
  10. import android.os.Bundle;
  11. import android.telephony.SmsManager;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.EditText;
  15. import android.widget.Toast;
  16.  
  17. public class MainActivity extends AppCompatActivity {
  18.  
  19. private static final String TEL_PREFIX = "tel:";
  20. private static final int RECEIVE_SMS_PERMISSION = 1;
  21. private static final int SMS_REQUEST_CODE = 3;
  22. private static final int REQUEST_CALL = 4;
  23.  
  24. private Button bPrepareSms;
  25. private Button bSendSms;
  26. private Button bCall;
  27. private Button bDial;
  28. private EditText etNumber;
  29. private EditText etBody;
  30.  
  31. private String telBroj;
  32.  
  33. @Override
  34. protected void onCreate(Bundle savedInstanceState) {
  35. super.onCreate(savedInstanceState);
  36. setContentView(R.layout.activity_main);
  37.  
  38. initWidgets();
  39. setupListeners();
  40. checkReceiveSmsPermission();
  41. }
  42.  
  43. private void initWidgets() {
  44. bCall = findViewById(R.id.bCall);
  45. bDial = findViewById(R.id.bDial);
  46. bPrepareSms = findViewById(R.id.bPrepareSms);
  47. bSendSms = findViewById(R.id.bSendSms);
  48.  
  49. etBody = findViewById(R.id.etPoruka);
  50. etNumber = findViewById(R.id.etBroj);
  51. }
  52.  
  53.  
  54.  
  55.  
  56.  
  57. private void setupListeners() {
  58. bCall.setOnClickListener(new View.OnClickListener() {
  59. @Override
  60. public void onClick(View view) {
  61.  
  62. makeCall();
  63.  
  64. }
  65. });
  66.  
  67.  
  68.  
  69. bDial.setOnClickListener(new View.OnClickListener() {
  70. @Override
  71. public void onClick(View view) {
  72.  
  73. if (hasNumber()) {
  74. telBroj = TEL_PREFIX + etNumber.getText().toString();
  75. Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(telBroj));
  76. startActivity(intent);
  77. }
  78.  
  79. }
  80. });
  81.  
  82. bPrepareSms.setOnClickListener(new View.OnClickListener() {
  83. @Override
  84. public void onClick(View view) {
  85.  
  86. if (hasNumber() && hasText()) {
  87.  
  88. Intent intent = new Intent(Intent.ACTION_VIEW);
  89. intent.putExtra("address", etNumber.getText().toString());
  90. intent.putExtra("sms_body", etBody.getText().toString());
  91. intent.setType("vnd.android-dir/mms-sms");
  92.  
  93. try {
  94. startActivity(intent);
  95. } catch (Exception e) {
  96. Toast.makeText(MainActivity.this, "Aplikaicja ne postoji", Toast.LENGTH_SHORT).show();
  97. }
  98.  
  99. }
  100.  
  101. }
  102. });
  103.  
  104. bSendSms.setOnClickListener(new View.OnClickListener() {
  105. @Override
  106. public void onClick(View v) {
  107.  
  108. SmsManager smsManager = SmsManager.getDefault();
  109.  
  110. if (hasNumber() && hasText()) {
  111.  
  112. if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS)
  113. == PackageManager.PERMISSION_GRANTED) {
  114. smsManager.sendTextMessage(etNumber.getText().toString(), null, etBody.getText().toString(), null, null);
  115. Toast.makeText(MainActivity.this, "SMS sent", Toast.LENGTH_SHORT).show();
  116. etNumber.setText("");
  117. etBody.setText("");
  118.  
  119. } else {
  120. ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SEND_SMS},
  121. SMS_REQUEST_CODE);
  122.  
  123. }
  124.  
  125. }
  126. }
  127. });
  128. }
  129.  
  130.  
  131.  
  132.  
  133. private void makeCall() {
  134.  
  135. String phoneNumber = TEL_PREFIX + etNumber.getText().toString();
  136.  
  137. if (hasNumber()) {
  138. Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(phoneNumber));
  139.  
  140. if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)
  141. != PackageManager.PERMISSION_GRANTED) {
  142. ActivityCompat.requestPermissions(MainActivity.this,
  143. new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL);
  144.  
  145. } else {
  146. startActivity(intent);
  147. }
  148.  
  149. }
  150.  
  151. }
  152.  
  153.  
  154.  
  155.  
  156. private boolean checkReceiveSmsPermission() {
  157.  
  158. if (ActivityCompat.checkSelfPermission(
  159. this, Manifest.permission.RECEIVE_SMS) == PackageManager.PERMISSION_GRANTED) {
  160. return true;
  161. } else {
  162. ActivityCompat.requestPermissions(
  163. this, new String[]{Manifest.permission.RECEIVE_SMS},
  164. RECEIVE_SMS_PERMISSION);
  165. return false;
  166.  
  167. }
  168.  
  169. }
  170.  
  171.  
  172.  
  173.  
  174. public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
  175.  
  176. if (requestCode == REQUEST_CALL) {
  177.  
  178. if (grantResults.length >= 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  179. makeCall();
  180. } else {
  181. Toast.makeText(this, "Permission DENIED", Toast.LENGTH_SHORT).show();
  182. }
  183. }
  184.  
  185. }
  186.  
  187.  
  188.  
  189. private boolean hasNumber() {
  190. if (etNumber.getText().length() == 0) {
  191. Toast.makeText(this, "Unesite broj telefona", Toast.LENGTH_SHORT).show();
  192. return false;
  193. }
  194. return true;
  195. }
  196.  
  197. private boolean hasText() {
  198. if (etBody.getText().length() == 0) {
  199. Toast.makeText(this, "Unesite poruku ", Toast.LENGTH_SHORT).show();
  200. return false;
  201. }
  202. return true;
  203. }
  204.  
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement