From a6609ec58b4e2078531e9efc9189e5736e59251a Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 20 May 2022 22:49:40 +0530 Subject: [PATCH] Initial commit --- .gitignore | 15 + .idea/.gitignore | 3 + .idea/.name | 1 + .idea/compiler.xml | 6 + .idea/gradle.xml | 20 ++ .idea/misc.xml | 28 ++ app/.gitignore | 1 + app/build.gradle | 38 +++ app/proguard-rules.pro | 21 ++ .../dndservice/ExampleInstrumentedTest.java | 26 ++ app/src/main/AndroidManifest.xml | 36 +++ app/src/main/alert-playstore.png | Bin 0 -> 112754 bytes .../com/example/dndservice/CallActivity.java | 283 ++++++++++++++++++ .../com/example/dndservice/MainActivity.java | 30 ++ .../java/com/example/dndservice/Records.java | 75 +++++ .../com/example/dndservice/SmsActivity.java | 280 +++++++++++++++++ .../example/dndservice/data/MyDbHandler.java | 126 ++++++++ .../com/example/dndservice/model/Contact.java | 66 ++++ .../com/example/dndservice/params/Params.java | 15 + .../drawable-v24/ic_launcher_foreground.xml | 30 ++ app/src/main/res/drawable/background.xml | 6 + .../res/drawable/ic_launcher_background.xml | 170 +++++++++++ app/src/main/res/layout/activity_call.xml | 96 ++++++ app/src/main/res/layout/activity_main.xml | 46 +++ app/src/main/res/layout/activity_records.xml | 83 +++++ app/src/main/res/layout/activity_sms.xml | 92 ++++++ .../res/layout/already_sent_dialog_box.xml | 59 ++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes app/src/main/res/values-night/themes.xml | 19 ++ app/src/main/res/values/colors.xml | 11 + app/src/main/res/values/strings.xml | 10 + app/src/main/res/values/styles.xml | 16 + app/src/main/res/values/themes.xml | 18 ++ .../example/dndservice/ExampleUnitTest.java | 17 ++ build.gradle | 17 ++ gradle.properties | 19 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 185 ++++++++++++ gradlew.bat | 89 ++++++ settings.gradle | 10 + 52 files changed, 2079 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/example/dndservice/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/alert-playstore.png create mode 100644 app/src/main/java/com/example/dndservice/CallActivity.java create mode 100644 app/src/main/java/com/example/dndservice/MainActivity.java create mode 100644 app/src/main/java/com/example/dndservice/Records.java create mode 100644 app/src/main/java/com/example/dndservice/SmsActivity.java create mode 100644 app/src/main/java/com/example/dndservice/data/MyDbHandler.java create mode 100644 app/src/main/java/com/example/dndservice/model/Contact.java create mode 100644 app/src/main/java/com/example/dndservice/params/Params.java create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/layout/activity_call.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_records.xml create mode 100644 app/src/main/res/layout/activity_sms.xml create mode 100644 app/src/main/res/layout/already_sent_dialog_box.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/test/java/com/example/dndservice/ExampleUnitTest.java create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..f34e436 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +DnD Service \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..526b4c2 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..277db36 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..ddcaa5e --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,38 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdk 31 + + defaultConfig { + applicationId "com.example.dndservice" + minSdk 26 + targetSdk 31 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/com/example/dndservice/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/dndservice/ExampleInstrumentedTest.java new file mode 100644 index 0000000..a16fa5a --- /dev/null +++ b/app/src/androidTest/java/com/example/dndservice/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.dndservice; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.example.dndservice", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..e8d3c6b --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/alert-playstore.png b/app/src/main/alert-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..327f8295960d9905efd6abfcad89b339ea309fa6 GIT binary patch literal 112754 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 Hu0mjfX5c0V literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/example/dndservice/CallActivity.java b/app/src/main/java/com/example/dndservice/CallActivity.java new file mode 100644 index 0000000..a82b722 --- /dev/null +++ b/app/src/main/java/com/example/dndservice/CallActivity.java @@ -0,0 +1,283 @@ +package com.example.dndservice; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; +import android.provider.CallLog; +import android.telephony.SmsManager; +import android.telephony.SubscriptionInfo; +import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.dndservice.data.MyDbHandler; +import com.google.android.material.color.MaterialColors; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Locale; + + +public class CallActivity extends AppCompatActivity { + private TextView textView2; + EditText text_description2; + SimpleDateFormat formatter; + String pNumber, strDate , s1 , s2; + private Spinner spinner2; + List list ; + int spinnerPosition; + public String Message; + Cursor cursorCallLogs; + MyDbHandler db; + String SimState; + int subscriptionId; + Dialog alertDialog; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_call); + ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_CALL_LOG},0); + spinner2 = findViewById(R.id.spinner2); + list = new ArrayList<> (); + textView2 = findViewById(R.id.textView2); + text_description2 = findViewById(R.id.description2); + pNumber = ""; + db = new MyDbHandler(this); + + alertDialog = new Dialog(this); + alertDialog.setContentView(R.layout.already_sent_dialog_box); + alertDialog.getWindow().setBackgroundDrawable(getDrawable(R.drawable.background)); + alertDialog.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); + alertDialog.setCancelable(false); + alertDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; + + Button no = alertDialog.findViewById(R.id.button11); + Button yes = alertDialog.findViewById(R.id.button12); + + no.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + alertDialog.dismiss(); + } + }); + + yes.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + MyMessage(); + alertDialog.dismiss(); + } + }); + } + + public void back(View view) { + onBackPressed(); + } + + public void home(View view) { + Intent intent = new Intent(this,MainActivity.class); + startActivity(intent); + } + + @SuppressLint("ResourceAsColor") + public void fetchLogs(View view){ + int permissionCheck = ContextCompat.checkSelfPermission(this , Manifest.permission.READ_CALL_LOG); + if(permissionCheck == PackageManager.PERMISSION_GRANTED) { + String s0 = "Call Logging Started..."; + textView2.setText(s0); + + Uri allCalls = Uri.parse("content://call_log/calls"); + cursorCallLogs = getContentResolver().query(allCalls, null, null, null); + /* + Above one requires higher API so did something with lower API + changed min SDK TO 26 IN BUILD.gradle(:app) + Cursor cursorCallLogs = managedQuery(allCalls, null, null, null, null); + */ + cursorCallLogs.moveToFirst(); + ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, list); + //adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner2.setAdapter(adapter); + do { + int num = cursorCallLogs.getColumnIndex(CallLog.Calls.NUMBER); + int name = cursorCallLogs.getColumnIndex(CallLog.Calls.CACHED_NAME); + String stringNumber = cursorCallLogs.getString(num); + String stringName = cursorCallLogs.getString(name); + String s4 = stringNumber + "-" + stringName; + list.add(s4); + } while (cursorCallLogs.moveToNext()); + adapter.notifyDataSetChanged(); + s0 = "Check dropdown list and select!!"; + int color = MaterialColors.getColor(findViewById(R.id.textView2), R.attr.colorTertiary); + textView2.setTextColor(color); + textView2.setText(s0); + spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int i, long l) { + spinnerPosition = spinner2.getSelectedItemPosition(); + s2 = setString2(spinnerPosition, allCalls); + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + cursorCallLogs.close(); + }else{ + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CALL_LOG} , 0); + } + } + + public String setString1(@NonNull EditText text_description2) { + return text_description2.getText().toString().trim(); + } + + @NonNull + public String setString2(int spinnerPosition, Uri allCalls){ + cursorCallLogs = getContentResolver().query(allCalls, null, null, null); + cursorCallLogs.moveToFirst(); + cursorCallLogs.move(spinnerPosition); + int pNum = cursorCallLogs.getColumnIndex(CallLog.Calls.NUMBER); + pNumber = cursorCallLogs.getString(pNum); + + int intDate = cursorCallLogs.getColumnIndex(android.provider.CallLog.Calls.DATE); + String callDate = cursorCallLogs.getString(intDate); + subscriptionId = cursorCallLogs.getColumnIndex(CallLog.Calls.PHONE_ACCOUNT_ID);//00 + long seconds=Long.parseLong(callDate); + formatter = new SimpleDateFormat("dd/MM/yy", Locale.getDefault()); + strDate = formatter.format(new Date(seconds)); + return pNumber + +", " + +strDate; + } + + public void btn_send(View view){ + s1 = setString1(text_description2); + Message = s1 + ", " + s2; + int permissionCheckSendSms = ContextCompat.checkSelfPermission(this , Manifest.permission.SEND_SMS); + if(permissionCheckSendSms == PackageManager.PERMISSION_GRANTED) + { + if(!text_description2.equals("") && text_description2.getText().toString().length() > 0){ + if(!db.CheckIsDataAlreadyInDBorNot(pNumber)){//00 + MyMessage(); + }else { + alertDialog.show(); + //Toast.makeText(this,"Already reported", Toast.LENGTH_LONG).show(); + } + }else{ + Toast.makeText(this,"Enter complete details!", Toast.LENGTH_LONG).show(); + } + } + else{ + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS} , 0); + } + + } + + private String dateTimeNow(){ + Date c = Calendar.getInstance().getTime(); + SimpleDateFormat df = new SimpleDateFormat("hh:mm a dd/MM/yy", Locale.getDefault()); + return df.format(c); + } + + public boolean isSimExists() { + TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); + int SIM_STATE = telephonyManager.getSimState(); + + + switch (SIM_STATE) { + case TelephonyManager.SIM_STATE_READY: + return true; + case TelephonyManager.SIM_STATE_ABSENT: + SimState = "No Sim Found!"; + break; + case TelephonyManager.SIM_STATE_NETWORK_LOCKED: + SimState = "Network Locked!"; + break; + case TelephonyManager.SIM_STATE_PIN_REQUIRED: + SimState = "PIN Required to access SIM!"; + break; + case TelephonyManager.SIM_STATE_PUK_REQUIRED: + SimState = "PUK Required to access SIM!"; + // Personal + // Unblocking Code + break; + case TelephonyManager.SIM_STATE_UNKNOWN: + SimState = "Unknown SIM State!"; + break; + case TelephonyManager.SIM_STATE_CARD_IO_ERROR: + SimState = "Sim Card to error!"; + break; + case TelephonyManager.SIM_STATE_CARD_RESTRICTED: + SimState = "Sim card Restricted!"; + break; + case TelephonyManager.SIM_STATE_NOT_READY: + SimState = "Sim not ready!"; + break; + case TelephonyManager.SIM_STATE_PERM_DISABLED: + SimState = "Sim Perm Disabled!"; + break; + } + return false; + } + + private void MyMessage() { + String phoneNumber = "7014942422"; + int permissionCheck_ReadPhoneState = ContextCompat.checkSelfPermission(this , Manifest.permission.READ_PHONE_STATE); + if(permissionCheck_ReadPhoneState == PackageManager.PERMISSION_GRANTED){ + if(isSimExists()){ + SubscriptionManager localSubscriptionManager = SubscriptionManager.from(this); + if (localSubscriptionManager.getActiveSubscriptionInfoCount() > 1) {//00 + List localList = localSubscriptionManager.getActiveSubscriptionInfoList(); + + SubscriptionInfo simInfo1 = localList.get(0); + SubscriptionInfo simInfo2 = localList.get(1); + + if(subscriptionId == simInfo1.getSubscriptionId()){ +// SmsManager.getSmsManagerForSubscriptionId(simInfo1.getSubscriptionId()) +// .sendTextMessage(phoneNumber, null, Message, null, null); + Toast.makeText(this, Message , Toast.LENGTH_SHORT).show(); + }else{ +// SmsManager.getSmsManagerForSubscriptionId(simInfo2.getSubscriptionId()) +// .sendTextMessage(phoneNumber, null, Message, null, null); + Toast.makeText(this, Message , Toast.LENGTH_SHORT).show(); + } + }else{ +// SmsManager.getDefault().sendTextMessage(phoneNumber, null, Message, null, null); + Toast.makeText(this, Message , Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(this, SimState+ " " + "Cannot send SMS", Toast.LENGTH_LONG).show(); + } + }else{ + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE} , 0); + } + String dateTimeNow = dateTimeNow(); + // TODO: What if SMS Sending failed + db.addContact(pNumber,"AlreadyDone",strDate,dateTimeNow); + Toast.makeText(this,pNumber, Toast.LENGTH_SHORT).show(); + db.close(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/dndservice/MainActivity.java b/app/src/main/java/com/example/dndservice/MainActivity.java new file mode 100644 index 0000000..71a8878 --- /dev/null +++ b/app/src/main/java/com/example/dndservice/MainActivity.java @@ -0,0 +1,30 @@ +package com.example.dndservice; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } + + public void goToSmsActivity(View view) { + Intent intent = new Intent(this,SmsActivity.class); + startActivity(intent); + } + public void goToCallActivity(View view) { + Intent intent = new Intent(this,CallActivity.class); + startActivity(intent); + } + + public void goToRecordsActivity(View view) { + Intent intent = new Intent(this,Records.class); + startActivity(intent); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/dndservice/Records.java b/app/src/main/java/com/example/dndservice/Records.java new file mode 100644 index 0000000..798b751 --- /dev/null +++ b/app/src/main/java/com/example/dndservice/Records.java @@ -0,0 +1,75 @@ +package com.example.dndservice; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import com.example.dndservice.data.MyDbHandler; +import com.example.dndservice.model.Contact; + +import java.util.ArrayList; +import java.util.List; + +public class Records extends AppCompatActivity { + ListView listView; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_records); + MyDbHandler db = new MyDbHandler(Records.this);//00 + /* + // Creating a contact for the db + Contact harry = new Contact(); + harry.setPhoneNumber("9090909090"); + harry.setName("Harry"); + + // Adding a contact to the db + db.addContact(harry); + //Log.d("dbharry","Id for harry successfully added to the db"); + */ + + //db.addContact("test","1910","01/01/2001","01/04/2001"); + + /* + harry.setId(1); + harry.setName("Changed Harry"); + harry.setPhoneNumber("121212"); + int affectedRows = db.updateContact(harry); + Log.d("dbharry","No of affected rows are: " + affectedRows); + */ + + releaseDataToUser(db); + db.close(); + } + + public void back(View view) { + onBackPressed(); + } + + public void home(View view) { + Intent intent = new Intent(this,MainActivity.class); + startActivity(intent); + } + + public void releaseDataToUser(MyDbHandler db){ + List allContacts = db.getAllContacts(); + ArrayList contacts = new ArrayList(); + + for(Contact contact: allContacts){ + //Log.d("dbharry","Id: " + contact.getId() + "\n" + "Name: " + contact.getName() + "\n" + "Phone Number: " + contact.getPhoneNumber()); + contacts.add(contact.getName() + + "\n \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t- " + + contact.getDateReport()); + } + + + listView = findViewById(R.id.listView); + ArrayAdapter arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, contacts);//contacts + listView.setAdapter(arrayAdapter); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/dndservice/SmsActivity.java b/app/src/main/java/com/example/dndservice/SmsActivity.java new file mode 100644 index 0000000..f6caa27 --- /dev/null +++ b/app/src/main/java/com/example/dndservice/SmsActivity.java @@ -0,0 +1,280 @@ +package com.example.dndservice; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import android.Manifest; +import android.app.Dialog; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; +import android.provider.Telephony; +import android.telephony.SmsManager; +import android.telephony.SubscriptionInfo; +import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.dndservice.data.MyDbHandler; +import com.google.android.material.color.MaterialColors; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +public class SmsActivity extends AppCompatActivity { + private TextView textView; + SimpleDateFormat formatter; + String stringSender, strDate, s1 ; + private Spinner spinner; + List list ; + int spinnerPosition; + public String Message; + Cursor cursorSms; + MyDbHandler db; + String SimState; + int subscriptionId; + Dialog alertDialog; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sms); + + ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.SEND_SMS},0); + spinner = findViewById(R.id.spinner); + list = new ArrayList<>(); + + textView = findViewById(R.id.textView); + db = new MyDbHandler(this); + stringSender = ""; + + alertDialog = new Dialog(this); + alertDialog.setContentView(R.layout.already_sent_dialog_box); + alertDialog.getWindow().setBackgroundDrawable(getDrawable(R.drawable.background)); + alertDialog.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); + alertDialog.setCancelable(false); + alertDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; + + Button no = alertDialog.findViewById(R.id.button11); + Button yes = alertDialog.findViewById(R.id.button12); + + no.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + alertDialog.dismiss(); + } + }); + + yes.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + MyMessage(); + alertDialog.dismiss(); + } + }); + } + + public void back(View view) { + onBackPressed(); + } + + public void home(View view) { + Intent intent = new Intent(this,MainActivity.class); + startActivity(intent); + } + + public void fetchSms(View view){ + int permissionCheckReadSms = ContextCompat.checkSelfPermission(this , Manifest.permission.READ_SMS); + if(permissionCheckReadSms == PackageManager.PERMISSION_GRANTED) { + String s0 = "SMS Fetching Started..."; + textView.setText(s0); + Uri allSms = Uri.parse("content://sms/inbox"); + cursorSms = getContentResolver().query(allSms,null,null,null); + cursorSms.moveToFirst(); + ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1, list); + spinner.setAdapter(adapter); + do { + int sender = cursorSms.getColumnIndex(Telephony.Sms.ADDRESS); + int body = cursorSms.getColumnIndex(Telephony.Sms.BODY); + //int time = cursorSms.getColumnIndex(Telephony.Sms.DATE); + stringSender = cursorSms.getString(sender); + String stringBody = cursorSms.getString(body); + //String time = cursorSms.getString(time);//Needs to be fixed + String s4 = stringSender + + "\n\t" + stringBody + //+ "\n\t" + time + + "\n";//not in use as of now because content is shrunk + list.add(s4); + } while (cursorSms.moveToNext()); + adapter.notifyDataSetChanged(); + s0 = "Check dropdown list and select!!"; + int color = MaterialColors.getColor(findViewById(R.id.textView), R.attr.colorTertiary); + textView.setTextColor(color); + textView.setText(s0); + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int i, long l) { + spinnerPosition = spinner.getSelectedItemPosition(); + s1 = setString2(spinnerPosition, allSms); + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + cursorSms.close(); + }else{ + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_SMS} , 0); + } + } + + + @NonNull + public String setString2(int spinnerPosition, Uri allSms){ + cursorSms = getContentResolver().query(allSms, null, null, null); + cursorSms.moveToFirst(); + cursorSms.move(spinnerPosition); + int ucc = cursorSms.getColumnIndex(Telephony.Sms.BODY); + String stringUcc = cursorSms.getString(ucc); + int sender = cursorSms.getColumnIndex(Telephony.Sms.ADDRESS); + stringSender = cursorSms.getString(sender); + + int intDate = cursorSms.getColumnIndex(Telephony.Sms.DATE); + String callDate = cursorSms.getString(intDate); + + subscriptionId = cursorSms.getColumnIndex(Telephony.Sms.SUBSCRIPTION_ID);//00 + + long seconds=Long.parseLong(callDate); + formatter = new SimpleDateFormat("dd/MM/yy", Locale.getDefault()); + strDate = formatter.format(new Date(seconds)); + return stringUcc + + ", " + +stringSender + +", " + +strDate; + } + + public void btn_send(View view){ + int permissionCheckSendSms = ContextCompat.checkSelfPermission(this , Manifest.permission.SEND_SMS); + if(permissionCheckSendSms == PackageManager.PERMISSION_GRANTED) + { + Message = s1; + if(!stringSender.equals("")){ + if(!db.CheckIsDataAlreadyInDBorNot(stringSender)){ + MyMessage(); + }else { + alertDialog.show(); + //Toast.makeText(this,"Already reported", Toast.LENGTH_LONG).show(); + } + }else{ + Toast.makeText(this,"Click Fetch SMS Button First !", Toast.LENGTH_LONG).show(); + } + } + else{ + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS} , 0); + } + } + + private String dateTimeNow(){ + Date c = Calendar.getInstance().getTime(); + SimpleDateFormat df = new SimpleDateFormat("hh:mm a dd/MM/yy", Locale.getDefault()); + return df.format(c); + } + + public boolean isSimExists() { + TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); + int SIM_STATE = telephonyManager.getSimState(); + + + switch (SIM_STATE) { + case TelephonyManager.SIM_STATE_READY: + return true; + case TelephonyManager.SIM_STATE_ABSENT: + SimState = "No Sim Found!"; + break; + case TelephonyManager.SIM_STATE_NETWORK_LOCKED: + SimState = "Network Locked!"; + break; + case TelephonyManager.SIM_STATE_PIN_REQUIRED: + SimState = "PIN Required to access SIM!"; + break; + case TelephonyManager.SIM_STATE_PUK_REQUIRED: + SimState = "PUK Required to access SIM!"; + // Personal + // Unblocking Code + break; + case TelephonyManager.SIM_STATE_UNKNOWN: + SimState = "Unknown SIM State!"; + break; + case TelephonyManager.SIM_STATE_CARD_IO_ERROR: + SimState = "Sim Card to error!"; + break; + case TelephonyManager.SIM_STATE_CARD_RESTRICTED: + SimState = "Sim card Restricted!"; + break; + case TelephonyManager.SIM_STATE_NOT_READY: + SimState = "Sim not ready!"; + break; + case TelephonyManager.SIM_STATE_PERM_DISABLED: + SimState = "Sim Perm Disabled!"; + break; + } + return false; + } + + private void MyMessage() { + String phoneNumber = "7014942422"; + int permissionCheck_ReadPhoneState = ContextCompat.checkSelfPermission(this , Manifest.permission.READ_PHONE_STATE); + if(permissionCheck_ReadPhoneState == PackageManager.PERMISSION_GRANTED){ + if(isSimExists()){ + SubscriptionManager localSubscriptionManager = SubscriptionManager.from(this); + if (localSubscriptionManager.getActiveSubscriptionInfoCount() > 1) {//00 + List localList = localSubscriptionManager.getActiveSubscriptionInfoList(); + + SubscriptionInfo simInfo1 = localList.get(0); + SubscriptionInfo simInfo2 = localList.get(1); + + if(subscriptionId == simInfo1.getSubscriptionId()){ +// SmsManager.getSmsManagerForSubscriptionId(simInfo1.getSubscriptionId()) +// .sendTextMessage(phoneNumber, null, Message, null, null); + Toast.makeText(this, Message , Toast.LENGTH_SHORT).show(); + }else{ +// SmsManager.getSmsManagerForSubscriptionId(simInfo2.getSubscriptionId()) +// .sendTextMessage(phoneNumber, null, Message, null, null); + Toast.makeText(this, Message , Toast.LENGTH_SHORT).show(); + } + }else{ +// SmsManager.getDefault().sendTextMessage(phoneNumber, null, Message, null, null); + Toast.makeText(this, Message , Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(this, SimState+ " " + "Cannot send SMS", Toast.LENGTH_LONG).show(); + } + }else{ + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE} , 0); + } + String dateTimeNow = dateTimeNow(); + // TODO: What if SMS Sending failed + db.addContact(stringSender,"AlreadyDone",strDate,dateTimeNow); + //Toast.makeText(this,stringSender, Toast.LENGTH_SHORT).show(); + db.close(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/dndservice/data/MyDbHandler.java b/app/src/main/java/com/example/dndservice/data/MyDbHandler.java new file mode 100644 index 0000000..d2a5648 --- /dev/null +++ b/app/src/main/java/com/example/dndservice/data/MyDbHandler.java @@ -0,0 +1,126 @@ +package com.example.dndservice.data; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +import com.example.dndservice.model.Contact; +import com.example.dndservice.params.Params; + +import java.util.ArrayList; +import java.util.List; + +public class MyDbHandler extends SQLiteOpenHelper { + + public MyDbHandler(Context context) { + super(context, Params.DB_NAME, null, Params.DB_VERSION); + } + + @Override + public void onCreate(SQLiteDatabase db) { + String create = "CREATE TABLE " + Params.TABLE_NAME + "(" + + Params.KEY_ID + " INTEGER PRIMARY KEY," + + Params.KEY_NAME + " TEXT, " + + Params.KEY_STATUS + " TEXT, " + + Params.KEY_DATE_REC + " TEXT, " + + Params.KEY_DATE_REPORT + " TEXT" + + ")"; + Log.d("phi", "Query being run is : "+ create); + db.execSQL(create); + + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + + } + + public void addContact(Contact contact){ + SQLiteDatabase db = this.getWritableDatabase(); + + ContentValues values = new ContentValues(); + values.put(Params.KEY_NAME, contact.getName()); + values.put(Params.KEY_STATUS, contact.getStatus()); + values.put(Params.KEY_DATE_REC, contact.getDateRec()); + values.put(Params.KEY_DATE_REPORT, contact.getDateReport()); + db.insert(Params.TABLE_NAME, null, values); + Log.d("phi", "Successfully inserted"); + db.close(); + } + + public void addContact(String name, String status, String dateRec, String dateReport){ + SQLiteDatabase db = this.getWritableDatabase(); + // Adding a contact to the db + ContentValues values = new ContentValues(); + values.put(Params.KEY_NAME, name); + values.put(Params.KEY_STATUS, status); + values.put(Params.KEY_DATE_REC, dateRec); + values.put(Params.KEY_DATE_REPORT, dateReport); + + db.insert(Params.TABLE_NAME, null, values); + db.close(); + } + + public List getAllContacts(){ + List contactList = new ArrayList<>(); + SQLiteDatabase db = this.getReadableDatabase(); + // Generate the query to read from the database + String select = "SELECT * FROM " + Params.TABLE_NAME; + Cursor cursor = db.rawQuery(select, null); + + // Loop through now + //00 Edited : cursor ko reverse me chalaya + if(cursor.moveToLast()){ + do{ + Contact contact = new Contact(); + contact.setId(Integer.parseInt(cursor.getString(0))); + contact.setName(cursor.getString(1)); + contact.setStatus(cursor.getString(2)); + contact.setDateRec(cursor.getString(3)); + contact.setDateReport(cursor.getString(4)); + contactList.add(contact); + }while(cursor.moveToPrevious()); + } + return contactList; + } + + public int updateContact(Contact contact){ + SQLiteDatabase db = this.getWritableDatabase(); + + ContentValues values = new ContentValues(); + values.put(Params.KEY_NAME, contact.getName()); + values.put(Params.KEY_STATUS, contact.getStatus()); + values.put(Params.KEY_DATE_REC, contact.getDateRec()); + values.put(Params.KEY_DATE_REPORT, contact.getDateReport()); + //Lets update now + return db.update(Params.TABLE_NAME, values, Params.KEY_ID + "=?", + new String[]{String.valueOf(contact.getId())}); + } + + public void deleteContactById(int id){ + SQLiteDatabase db = this.getWritableDatabase(); + db.delete(Params.TABLE_NAME, Params.KEY_ID +"=?", new String[]{String.valueOf(id)}); + db.close(); + } + + public void deleteContact(Contact contact){ + SQLiteDatabase db = this.getWritableDatabase(); + db.delete(Params.TABLE_NAME, Params.KEY_ID +"=?", new String[]{String.valueOf(contact.getId())}); + db.close(); + } + + public boolean CheckIsDataAlreadyInDBorNot(String fieldValue) { + SQLiteDatabase db = this.getReadableDatabase(); + String Query = "Select * from " + Params.TABLE_NAME + " where " + Params.KEY_NAME + " = \"" + fieldValue + "\";"; + Cursor cursor = db.rawQuery(Query, null); + if(cursor.getCount() <= 0){ + cursor.close(); + return false; + } + cursor.close(); + return true; + } +} diff --git a/app/src/main/java/com/example/dndservice/model/Contact.java b/app/src/main/java/com/example/dndservice/model/Contact.java new file mode 100644 index 0000000..69999e0 --- /dev/null +++ b/app/src/main/java/com/example/dndservice/model/Contact.java @@ -0,0 +1,66 @@ +package com.example.dndservice.model; + +public class Contact { + private int id; + private String name; + private String status; + private String dateRec; + private String dateReport; + public Contact(String name, String status, String dateRec, String dateReport) { + this.name = name; + this.status = status; + this.dateRec = dateRec; + this.dateReport = dateReport; + } + + public Contact(int id, String name, String status, String dateRec, String dateReport) { + this.id = id; + this.name = name; + this.status = status; + this.dateRec = dateRec; + this.dateReport = dateReport; + } + + public Contact() { + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDateRec() { + return dateRec; + } + + public void setDateRec(String dateRec) { + this.dateRec = dateRec; + } + + public String getDateReport() { + return dateReport; + } + + public void setDateReport(String dateReport) { + this.dateReport = dateReport; + } +} diff --git a/app/src/main/java/com/example/dndservice/params/Params.java b/app/src/main/java/com/example/dndservice/params/Params.java new file mode 100644 index 0000000..5a51528 --- /dev/null +++ b/app/src/main/java/com/example/dndservice/params/Params.java @@ -0,0 +1,15 @@ +package com.example.dndservice.params; + +public class Params { + public static final int DB_VERSION = 1; + public static final String DB_NAME = "contacts_db"; + public static final String TABLE_NAME = "contacts_table"; + + // keys of our table in db + public static final String KEY_ID = "id"; + public static final String KEY_NAME = "name";// KEY_NAME = "name" + public static final String KEY_STATUS = "status"; + public static final String KEY_DATE_REC = "record_date"; + public static final String KEY_DATE_REPORT = "report_date"; + +} diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/background.xml b/app/src/main/res/drawable/background.xml new file mode 100644 index 0000000..4aada36 --- /dev/null +++ b/app/src/main/res/drawable/background.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml new file mode 100644 index 0000000..938c8e6 --- /dev/null +++ b/app/src/main/res/layout/activity_call.xml @@ -0,0 +1,96 @@ + + + + + + + +