From f291fbf72f0fdf44e6ebacec9885c99667c7eeed Mon Sep 17 00:00:00 2001 From: Vinayak Patil Date: Wed, 20 Jul 2022 16:14:36 +0530 Subject: [PATCH] initial commit --- README.md | 46 ++++ app/.gitignore | 1 + app/build.gradle | 48 +++++ app/proguard-rules.pro | 21 ++ .../sparkwomen/ExampleInstrumentedTest.java | 26 +++ app/src/main/AndroidManifest.xml | 39 ++++ .../darkness/sparkwomen/ContactActivity.java | 190 +++++++++++++++++ .../darkness/sparkwomen/ContactsAdapter.java | 58 ++++++ .../sparkwomen/LawDisplayerActivity.java | 64 ++++++ .../com/darkness/sparkwomen/LawModel.java | 29 +++ .../com/darkness/sparkwomen/LawsActivity.java | 42 ++++ .../com/darkness/sparkwomen/MainActivity.java | 89 ++++++++ .../com/darkness/sparkwomen/MyAdapter.java | 55 +++++ .../sparkwomen/MyOnClickListener.java | 5 + .../sparkwomen/SelfDefenseActivity.java | 27 +++ .../com/darkness/sparkwomen/ServiceMine.java | 185 +++++++++++++++++ .../com/darkness/sparkwomen/SmsActivity.java | 87 ++++++++ .../darkness/sparkwomen/SplashActivity.java | 96 +++++++++ .../drawable-v24/ic_launcher_foreground.xml | 30 +++ app/src/main/res/drawable-v24/law_image.xml | 5 + app/src/main/res/drawable/contact.xml | 5 + app/src/main/res/drawable/girl.jpg | Bin 0 -> 19552 bytes app/src/main/res/drawable/girlpower.png | Bin 0 -> 5054 bytes .../ic_baseline_account_circle_24.xml | 5 + .../res/drawable/ic_baseline_close_24.xml | 5 + .../res/drawable/ic_baseline_delete_24.xml | 5 + .../main/res/drawable/ic_baseline_edit_24.xml | 5 + .../res/drawable/ic_baseline_logout_24.xml | 5 + .../res/drawable/ic_baseline_message_24.xml | 5 + .../res/drawable/ic_launcher_background.xml | 170 +++++++++++++++ app/src/main/res/drawable/laws.png | Bin 0 -> 25870 bytes .../main/res/drawable/oval_purple_full.xml | 6 + .../main/res/drawable/purple_background.xml | 7 + .../main/res/drawable/rectangle_border.xml | 7 + app/src/main/res/drawable/self_defence.xml | 8 + app/src/main/res/drawable/settings.xml | 5 + app/src/main/res/drawable/sitting_girl.png | Bin 0 -> 9089 bytes .../res/drawable/top_left_corner_oval.xml | 11 + app/src/main/res/layout/activity_contact.xml | 140 +++++++++++++ .../res/layout/activity_law_displayer.xml | 114 ++++++++++ app/src/main/res/layout/activity_laws.xml | 82 ++++++++ app/src/main/res/layout/activity_main.xml | 196 ++++++++++++++++++ .../main/res/layout/activity_self_defense.xml | 34 +++ app/src/main/res/layout/activity_sms.xml | 48 +++++ app/src/main/res/layout/activity_splash.xml | 61 ++++++ app/src/main/res/layout/contact_item.xml | 37 ++++ app/src/main/res/layout/dialog.xml | 33 +++ app/src/main/res/layout/floating_menu.xml | 13 ++ app/src/main/res/layout/law_item.xml | 17 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3593 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5339 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2636 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3388 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7472 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 11873 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16570 bytes app/src/main/res/raw/siren.wav | Bin 0 -> 501758 bytes app/src/main/res/values-night/themes.xml | 16 ++ app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/strings.xml | 85 ++++++++ app/src/main/res/values/themes.xml | 16 ++ .../darkness/sparkwomen/ExampleUnitTest.java | 17 ++ build.gradle | 24 +++ gradle.properties | 19 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 +++++++++++++++ gradlew.bat | 84 ++++++++ local.properties | 10 + media/SPARKWOMEN.png | Bin 0 -> 946148 bytes settings.gradle | 2 + 76 files changed, 2638 insertions(+) create mode 100644 README.md 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/darkness/sparkwomen/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/darkness/sparkwomen/ContactActivity.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/ContactsAdapter.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/LawDisplayerActivity.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/LawModel.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/LawsActivity.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/MainActivity.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/MyAdapter.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/MyOnClickListener.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/SelfDefenseActivity.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/ServiceMine.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/SmsActivity.java create mode 100644 app/src/main/java/com/darkness/sparkwomen/SplashActivity.java create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable-v24/law_image.xml create mode 100644 app/src/main/res/drawable/contact.xml create mode 100644 app/src/main/res/drawable/girl.jpg create mode 100644 app/src/main/res/drawable/girlpower.png create mode 100644 app/src/main/res/drawable/ic_baseline_account_circle_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_close_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_delete_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_edit_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_logout_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_message_24.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/laws.png create mode 100644 app/src/main/res/drawable/oval_purple_full.xml create mode 100644 app/src/main/res/drawable/purple_background.xml create mode 100644 app/src/main/res/drawable/rectangle_border.xml create mode 100644 app/src/main/res/drawable/self_defence.xml create mode 100644 app/src/main/res/drawable/settings.xml create mode 100644 app/src/main/res/drawable/sitting_girl.png create mode 100644 app/src/main/res/drawable/top_left_corner_oval.xml create mode 100644 app/src/main/res/layout/activity_contact.xml create mode 100644 app/src/main/res/layout/activity_law_displayer.xml create mode 100644 app/src/main/res/layout/activity_laws.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_self_defense.xml create mode 100644 app/src/main/res/layout/activity_sms.xml create mode 100644 app/src/main/res/layout/activity_splash.xml create mode 100644 app/src/main/res/layout/contact_item.xml create mode 100644 app/src/main/res/layout/dialog.xml create mode 100644 app/src/main/res/layout/floating_menu.xml create mode 100644 app/src/main/res/layout/law_item.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.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/raw/siren.wav 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/themes.xml create mode 100644 app/src/test/java/com/darkness/sparkwomen/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 100755 gradlew create mode 100644 gradlew.bat create mode 100644 local.properties create mode 100644 media/SPARKWOMEN.png create mode 100644 settings.gradle diff --git a/README.md b/README.md new file mode 100644 index 0000000..14ac111 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# ⚡ Spark Women - A Women Safety Application +## _Feel Safe Everywhere_ + + +Women Safety App is user friendly application built in Android Studio, +it is simple to implement,easy to understand. + +Demo Download App : [Click Here](https://drive.google.com/file/d/1ZWB_HUyxm86T6GtpMhTWbOwuw6i7G4Wp/view?usp=sharing) + +[](https://t.me/vinayak_09) + + + + +## Features + +- Easy to implement +- Easy to understand +- Shake detector +- Siren sound +- Call to registered mobile +- Shake device to send SOS to registered mobile and play siren +- Sends Last Known Location to registered mobile +- Now we can add multiple contacts to send SOS + +#### Prerequisites : +- Android Studio +- Basic knowledge about Firebase Authentication and Realtime database. +## Build and Run Application + +###### SparkWomen A Women Safety Application requires Android Oreo or newer version to run. +Follow this steps to get Working Project! +``` +Clone this repository or download file +Extract zip if downloaded code +Open project in Android Studio +Wait while Android Studio Download gradle or required files +Hit Run Button ! +``` + +------------ + +Full Project demonstration Youtube :
+Link - https://youtu.be/E0WLnlkPDJY + +**Free Software, Hell Yeah!** 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..839b2df --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,48 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdkVersion 31 + buildToolsVersion "30.0.3" + + defaultConfig { + applicationId "com.darkness.sparkwomen" + minSdkVersion 24 + targetSdkVersion 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' + + + implementation 'com.google.android.gms:play-services-maps:18.0.2' + implementation 'com.google.android.gms:play-services-location:19.0.1' + implementation 'com.github.tbouron.shakedetector:library:1.0.0@aar' + + implementation 'com.karumi:dexter:6.2.3' + + +} \ 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/darkness/sparkwomen/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/darkness/sparkwomen/ExampleInstrumentedTest.java new file mode 100644 index 0000000..d6b7e2f --- /dev/null +++ b/app/src/androidTest/java/com/darkness/sparkwomen/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.darkness.sparkwomen; + +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.darkness.sparkwomen", 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..748e0f8 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/darkness/sparkwomen/ContactActivity.java b/app/src/main/java/com/darkness/sparkwomen/ContactActivity.java new file mode 100644 index 0000000..2fa2a74 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/ContactActivity.java @@ -0,0 +1,190 @@ +package com.darkness.sparkwomen; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.app.Dialog; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Set; + +public class ContactActivity extends AppCompatActivity { + + + EditText contact; + Button addContact; + + RecyclerView recyclerView; + + HashMap contacts; + + ArrayList send; + + ContactsAdapter adapter; + MyOnClickListener onClickListener; + + ImageView edit; + + TextView callerInfo; + + + @Override + public void onBackPressed() { + super.onBackPressed(); + startActivity(new Intent(this,MainActivity.class)); + this.finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_contact); + + + + edit = findViewById(R.id.editCallButton); + + + edit.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Dialog dialog = new Dialog(ContactActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setCancelable(false); + dialog.setContentView(R.layout.dialog); + + Button close,save; + close = dialog.findViewById(R.id.dialogCancel); + save = dialog.findViewById(R.id.dialogSave); + EditText number = dialog.findViewById(R.id.dialogEditText); + + save.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + String numberText = number.getText().toString(); + if(numberText.length() == 10){ + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString("firstNumber",numberText); + editor.apply(); + setCallingInformation(); + dialog.dismiss(); + }else { + Toast.makeText(ContactActivity.this, "Enter valid number!", Toast.LENGTH_SHORT).show(); + } + } + }); + + close.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + } + }); + + + dialog.show(); + } + }); + + + + + callerInfo = findViewById(R.id.callText); + + + setCallingInformation(); + + + contacts = new HashMap<>(); + send = new ArrayList<>(); + + adapter = new ContactsAdapter(this, send, new MyOnClickListener() { + @Override + public void onItemClicked(int position) { + deleteItemFromDatabase(position); + } + }); + + recyclerView = findViewById(R.id.contacts); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + getData(); + + contact = findViewById(R.id.contactGet); + addContact = findViewById(R.id.addContact); + + addContact.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + createContact(contact.getText().toString()); + } + }); + } + + private void createContact(String contactString) { + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + Set oldNumbers = sharedPreferences.getStringSet("enumbers", new LinkedHashSet<>()); + oldNumbers.add(contactString); + editor.remove("enumbers"); + editor.putStringSet("enumbers",oldNumbers); + editor.apply(); + + contact.setText(""); + editor.apply(); + getData(); + + } + + + private void setCallingInformation(){ + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + String firstNumber = sharedPreferences.getString("firstNumber","null"); + + if (firstNumber.isEmpty()||firstNumber.equalsIgnoreCase("null")){ + callerInfo.setText("Please add number."); + }else { + callerInfo.setText(firstNumber); + } + + } + + + + + private void deleteItemFromDatabase(int position) { + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + Set oldNumbers = sharedPreferences.getStringSet("enumbers", new LinkedHashSet<>()); + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.remove("enumbers"); + oldNumbers.remove(send.get(position)); + editor.putStringSet("enumbers",oldNumbers); + editor.apply(); + getData(); + } + + + + private void getData() { + send.clear(); + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + Set oldNumbers = sharedPreferences.getStringSet("enumbers", new LinkedHashSet<>()); + send.addAll(oldNumbers); + adapter.notifyDataSetChanged(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/darkness/sparkwomen/ContactsAdapter.java b/app/src/main/java/com/darkness/sparkwomen/ContactsAdapter.java new file mode 100644 index 0000000..77b89ff --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/ContactsAdapter.java @@ -0,0 +1,58 @@ +package com.darkness.sparkwomen; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; +import java.util.HashMap; + +public class ContactsAdapter extends RecyclerView.Adapter { + + HashMap contacts; + Context context; + ArrayList send; + MyOnClickListener myOnClickListener; + + ContactsAdapter(Context context, ArrayList send,MyOnClickListener myOnClickListener){ + this.send = send; + this.context = context; + this.myOnClickListener = myOnClickListener; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.contact_item,parent,false)); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + holder.contact.setText(send.get(position)); + holder.delete.setOnClickListener(view -> myOnClickListener.onItemClicked(position)); + } + + @Override + public int getItemCount() { + return send.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder{ + + TextView name,contact; + ImageView delete; + + public MyViewHolder(@NonNull View itemView) { + super(itemView); + contact = itemView.findViewById(R.id.contactItem); + delete = itemView.findViewById(R.id.deleteIcon); + } + } + +} diff --git a/app/src/main/java/com/darkness/sparkwomen/LawDisplayerActivity.java b/app/src/main/java/com/darkness/sparkwomen/LawDisplayerActivity.java new file mode 100644 index 0000000..3519954 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/LawDisplayerActivity.java @@ -0,0 +1,64 @@ +package com.darkness.sparkwomen; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +public class LawDisplayerActivity extends AppCompatActivity implements View.OnClickListener { + + TextView big,oneLine; + String[] laws, lawsContent; + int counter; + Button back, next; + View closeBtn; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_law_displayer); + + big = findViewById(R.id.bigLaws); + oneLine = findViewById(R.id.lawString); + counter = getIntent().getIntExtra("position",0); + laws = new String[]{"The Prohibition of Child Marriage Act, 2006","Special Marriage Act, 1954","Dowry Prohibition Act, 1961","Indian Divorce Act, 1969","Maternity Benefit Act,1861","Medical Termination of Pregnancy Act,1971","Sexual Harassment of Women at Workplace (Prevention, Prohibition and Redress) Act, 2013","Indecent Representation of Women(Prevention) Act,1986","National Commission for Women Act, 1990","Equal Remuneration Act, 1976"}; + lawsContent = this.getResources().getStringArray(R.array.lawsBig); + + closeBtn = findViewById(R.id.closeBtn); + closeBtn.setOnClickListener(view -> { + onBackPressed(); + LawDisplayerActivity.this.finish(); + }); + + back = findViewById(R.id.backBtn); + next = findViewById(R.id.nextBtn); + next.setOnClickListener(this); + back.setOnClickListener(this); + setData(); + } + + public void setData(){ + oneLine.setText(laws[counter]); + big.setText(lawsContent[counter]); + } + + @Override + public void onClick(View view) { + if(view.getId() == R.id.nextBtn){ + if(counter<9){ + counter++; + }else { + counter = 0; + } + } else if (view.getId() == R.id.backBtn) { + if(counter == 0){ + counter = (laws.length-1); + }else { + counter--; + } + } + + setData(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/darkness/sparkwomen/LawModel.java b/app/src/main/java/com/darkness/sparkwomen/LawModel.java new file mode 100644 index 0000000..8ec8771 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/LawModel.java @@ -0,0 +1,29 @@ +package com.darkness.sparkwomen; + +public class LawModel { + String lawString, lawDescription; + + public LawModel(String lawString, String lawDescription) { + this.lawString = lawString; + this.lawDescription = lawDescription; + } + + public LawModel() { + } + + public String getLawString() { + return lawString; + } + + public void setLawString(String lawString) { + this.lawString = lawString; + } + + public String getLawDescription() { + return lawDescription; + } + + public void setLawDescription(String lawDescription) { + this.lawDescription = lawDescription; + } +} diff --git a/app/src/main/java/com/darkness/sparkwomen/LawsActivity.java b/app/src/main/java/com/darkness/sparkwomen/LawsActivity.java new file mode 100644 index 0000000..1f5c247 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/LawsActivity.java @@ -0,0 +1,42 @@ +package com.darkness.sparkwomen; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.content.Intent; +import android.os.Bundle; + +public class LawsActivity extends AppCompatActivity { + + @Override + public void onBackPressed() { + super.onBackPressed(); + startActivity(new Intent(LawsActivity.this,MainActivity.class)); + LawsActivity.this.finish(); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_laws); + RecyclerView recyclerView = findViewById(R.id.recycleLaws); + String[] laws = new String[]{"The Prohibition of Child Marriage Act, 2006","Special Marriage Act, 1954","Dowry Prohibition Act, 1961","Indian Divorce Act, 1969","Maternity Benefit Act,1861","Medical Termination of Pregnancy Act,1971","Sexual Harassment of Women at Workplace (Prevention, Prohibition and Redress) Act, 2013","Indecent Representation of Women(Prevention) Act,1986","National Commission for Women Act, 1990","Equal Remuneration Act, 1976"}; + + MyAdapter adapter = new MyAdapter(this, laws, position -> { + Intent intent = new Intent(LawsActivity.this,LawDisplayerActivity.class); + intent.putExtra("position",position); + startActivity(intent); + }); + + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + + + findViewById(R.id.backBtn).setOnClickListener(view -> { + startActivity(new Intent(LawsActivity.this,MainActivity.class)); + LawsActivity.this.finish(); + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/darkness/sparkwomen/MainActivity.java b/app/src/main/java/com/darkness/sparkwomen/MainActivity.java new file mode 100644 index 0000000..ea4dae0 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/MainActivity.java @@ -0,0 +1,89 @@ +package com.darkness.sparkwomen; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; + +import android.Manifest; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import android.telephony.SmsManager; +import android.view.View; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationServices; + +import java.util.HashSet; +import java.util.Set; + +public class MainActivity extends AppCompatActivity implements View.OnClickListener { + + FusedLocationProviderClient fusedLocationClient; + String myLocation = "", numberCall; + SmsManager manager = SmsManager.getDefault(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); + findViewById(R.id.panicBtn).setOnClickListener(this); + findViewById(R.id.fourth).setOnClickListener(this); + findViewById(R.id.first).setOnClickListener(this); + findViewById(R.id.second).setOnClickListener(this); + findViewById(R.id.fifth).setOnClickListener(this); + } + + @Override + public void onClick(View view) { + int id = view.getId(); + if (id == R.id.fourth) { + startActivity(new Intent(MainActivity.this, LawsActivity.class)); + MainActivity.this.finish(); + }else if(id == R.id.first){ + startActivity(new Intent(MainActivity.this, ContactActivity.class)); + MainActivity.this.finish(); + }else if(id == R.id.fifth){ + startActivity(new Intent(MainActivity.this, SelfDefenseActivity.class)); + } else if(id == R.id.second){ + startActivity(new Intent(MainActivity.this, SmsActivity.class)); + MainActivity.this.finish(); + } else if (id == R.id.panicBtn) { + + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + return; + } + fusedLocationClient.getLastLocation() + .addOnSuccessListener(location -> { + if (location != null) { + location.getAltitude(); + location.getLongitude(); + myLocation = "http://maps.google.com/maps?q=loc:"+location.getLatitude()+","+location.getLongitude(); + }else { + myLocation = "Unable to Find Location :("; + } + sendMsg(); + }); + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + numberCall = sharedPreferences.getString("firstNumber","None"); + if(!numberCall.equalsIgnoreCase("None")){ + Intent intent = new Intent(Intent.ACTION_CALL); + intent.setData(Uri.parse("tel:"+numberCall)); + startActivity(intent); + } + + } + + + } + void sendMsg(){ + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + Set oldNumbers = sharedPreferences.getStringSet("enumbers", new HashSet<>()); + if(!oldNumbers.isEmpty()){ + for(String ENUM : oldNumbers) + manager.sendTextMessage(ENUM,null,"Im in Trouble!\nSending My Location :\n"+myLocation,null,null); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/darkness/sparkwomen/MyAdapter.java b/app/src/main/java/com/darkness/sparkwomen/MyAdapter.java new file mode 100644 index 0000000..a9ad794 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/MyAdapter.java @@ -0,0 +1,55 @@ +package com.darkness.sparkwomen; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class MyAdapter extends RecyclerView.Adapter{ + + + String[] laws; + Context context; + MyOnClickListener myOnClickListener; + + public MyAdapter(Context context, String[] laws,MyOnClickListener onClickListener){ + this.laws = laws; + this.context = context; + this.myOnClickListener = onClickListener; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.law_item,parent,false)); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + int newPosition = position + 1; + String displayString = newPosition + " " + laws[position]; + holder.law.setText(displayString); + holder.law.setOnClickListener(view -> myOnClickListener.onItemClicked(position)); + } + + @Override + public int getItemCount() { + return laws.length; + } + + static class MyViewHolder extends RecyclerView.ViewHolder{ + + TextView law; + + public MyViewHolder(@NonNull View itemView) { + super(itemView); + law = itemView.findViewById(R.id.lawItem); + + } + } + +} diff --git a/app/src/main/java/com/darkness/sparkwomen/MyOnClickListener.java b/app/src/main/java/com/darkness/sparkwomen/MyOnClickListener.java new file mode 100644 index 0000000..8681349 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/MyOnClickListener.java @@ -0,0 +1,5 @@ +package com.darkness.sparkwomen; + +public interface MyOnClickListener { + void onItemClicked(int position); +} diff --git a/app/src/main/java/com/darkness/sparkwomen/SelfDefenseActivity.java b/app/src/main/java/com/darkness/sparkwomen/SelfDefenseActivity.java new file mode 100644 index 0000000..f38c0bc --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/SelfDefenseActivity.java @@ -0,0 +1,27 @@ +package com.darkness.sparkwomen; + +import android.os.Bundle; +import android.webkit.WebChromeClient; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +import androidx.appcompat.app.AppCompatActivity; + +public class SelfDefenseActivity extends AppCompatActivity { + + WebView webView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_self_defense); + + webView = findViewById(R.id.webView); + + webView.setWebChromeClient(new WebChromeClient()); + webView.getSettings().setLoadsImagesAutomatically(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.loadUrl("https://www.youtube.com/embed/T7aNSRoDCmg"); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/darkness/sparkwomen/ServiceMine.java b/app/src/main/java/com/darkness/sparkwomen/ServiceMine.java new file mode 100644 index 0000000..4c85713 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/ServiceMine.java @@ -0,0 +1,185 @@ + +package com.darkness.sparkwomen; + +import android.Manifest; +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.location.Location; +import android.media.MediaPlayer; +import android.os.Build; +import android.os.IBinder; +import android.telephony.SmsManager; +import android.view.View; + +import androidx.annotation.Nullable; +import androidx.core.app.ActivityCompat; + +import com.github.tbouron.shakedetector.library.ShakeDetector; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.tasks.OnSuccessListener; + +import java.util.HashSet; +import java.util.Set; + +public class ServiceMine extends Service { + + static boolean isRunning = false; + + static MediaPlayer mediaPlayer; + + FusedLocationProviderClient fusedLocationClient; + + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } + + SmsManager manager = SmsManager.getDefault(); +// WindowManager windowManager; + String myLocation; + View view; + @Override + public void onCreate() { + + super.onCreate(); + + mediaPlayer = MediaPlayer.create(getBaseContext(),R.raw.siren); + mediaPlayer.setLooping(true); + + + + fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + return; + } + fusedLocationClient.getLastLocation() + .addOnSuccessListener(new OnSuccessListener() { + @Override + public void onSuccess(Location location) { + if (location != null) { + // Logic to handle location object + location.getAltitude(); + location.getLongitude(); + myLocation = "http://maps.google.com/maps?q=loc:"+location.getLatitude()+","+location.getLongitude(); + }else { + myLocation = "Unable to Find Location :("; + } + } + }); + + + +// windowManager= (WindowManager) getSystemService(WINDOW_SERVICE); +// +// WindowManager.LayoutParams params= null; +// if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { +// params = new WindowManager.LayoutParams( +// WindowManager.LayoutParams.WRAP_CONTENT, +// WindowManager.LayoutParams.WRAP_CONTENT, +// WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, +// WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, +// PixelFormat.TRANSLUCENT); +// } +// +// params.gravity = Gravity.START; +// params.x = 0; +// params.y = 100; +// +// LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); +// view = inflater.inflate(R.layout.floating_menu, null); +// Button panic = view.findViewById(R.id.panicService); +// panic.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// mediaPlayer.start(); +// +// +// SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); +// Set oldNumbers = sharedPreferences.getStringSet("enumbers", new HashSet<>()); +// if(!oldNumbers.isEmpty()){ +// for(String ENUM : oldNumbers) +// manager.sendTextMessage(ENUM,null,"Im in Trouble!\nSending My Location :\n"+myLocation,null,null); +// } +// +// } +// }); +// +// windowManager.addView(view,params); + + + + ShakeDetector.create(this, () -> { + + mediaPlayer.start(); + + + SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE); + Set oldNumbers = sharedPreferences.getStringSet("enumbers", new HashSet<>()); + if(!oldNumbers.isEmpty()){ + for(String ENUM : oldNumbers) + manager.sendTextMessage(ENUM,null,"Im in Trouble!\nSending My Location :\n"+myLocation,null,null); + } + + }); + + } + + + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + + if (intent.getAction().equalsIgnoreCase("STOP")) { + if(isRunning){ + mediaPlayer.stop(); + this.stopForeground(true); + this.stopSelf(); +// windowManager.removeView(view); + isRunning = false; + } + } else { + Intent notificationIntent = new Intent(this, SmsActivity.class); + PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_MUTABLE); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + NotificationChannel channel = new NotificationChannel("MYID", "CHANNELFOREGROUND", NotificationManager.IMPORTANCE_DEFAULT); + + NotificationManager m = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + m.createNotificationChannel(channel); + + Notification notification = new Notification.Builder(this, "MYID") + .setContentTitle("Women Safety") + .setContentText("Shake Device to Send SOS") + .setSmallIcon(R.drawable.girlpower) + .setContentIntent(pendingIntent) + .build(); + this.startForeground(115, notification); + isRunning = true; + return START_NOT_STICKY; + } + if (intent.getAction().equalsIgnoreCase("PLAY")) { + mediaPlayer.start(); + } + } + + return super.onStartCommand(intent,flags,startId); + + + } + + @Override + public void onDestroy() { + mediaPlayer.stop(); + mediaPlayer.release(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/darkness/sparkwomen/SmsActivity.java b/app/src/main/java/com/darkness/sparkwomen/SmsActivity.java new file mode 100644 index 0000000..d9d1f09 --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/SmsActivity.java @@ -0,0 +1,87 @@ +package com.darkness.sparkwomen; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; + +import android.Manifest; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.provider.Settings; +import android.view.View; +import android.widget.Button; + +import com.google.android.material.snackbar.Snackbar; + +public class SmsActivity extends AppCompatActivity { + + + + Button start,stop; + + + @Override + public void onBackPressed() { + super.onBackPressed(); + startActivity(new Intent(SmsActivity.this,MainActivity.class)); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_sms); + stop = findViewById(R.id.stopService); + start = findViewById(R.id.startService); + + start.setOnClickListener(this::startServiceV); + + stop.setOnClickListener(this::stopService); + + } + + + public void stopService(View view) { + + Intent notificationIntent = new Intent(this,ServiceMine.class); + notificationIntent.setAction("stop"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if(ServiceMine.isRunning){ + getApplicationContext().startForegroundService(notificationIntent); + Snackbar.make(findViewById(android.R.id.content),"Service Stopped!", Snackbar.LENGTH_LONG).show(); + } + }else { + if(ServiceMine.isRunning){ +// getApplicationContext().startService(notificationIntent); + getApplicationContext().startService(notificationIntent); + Snackbar.make(findViewById(android.R.id.content),"Service Stopped!", Snackbar.LENGTH_LONG).show(); + } + } + } + + public void startServiceV(View view) { + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (!Settings.canDrawOverlays(this)) { + Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, + Uri.parse("package:" + getPackageName())); + startActivity(intent); + } + } + + if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED ) { + Intent notificationIntent = new Intent(this,ServiceMine.class); + notificationIntent.setAction("Start"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + getApplicationContext().startForegroundService(notificationIntent); + Snackbar.make(findViewById(android.R.id.content),"Service Started!", Snackbar.LENGTH_LONG).show(); + }else { + getApplicationContext().startService(notificationIntent); + Snackbar.make(findViewById(android.R.id.content),"Service Started!", Snackbar.LENGTH_LONG).show(); + } + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/darkness/sparkwomen/SplashActivity.java b/app/src/main/java/com/darkness/sparkwomen/SplashActivity.java new file mode 100644 index 0000000..abb7f1a --- /dev/null +++ b/app/src/main/java/com/darkness/sparkwomen/SplashActivity.java @@ -0,0 +1,96 @@ +package com.darkness.sparkwomen; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; + +import android.Manifest; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.location.Location; +import android.os.Bundle; +import android.widget.Toast; + +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.karumi.dexter.Dexter; +import com.karumi.dexter.MultiplePermissionsReport; +import com.karumi.dexter.PermissionToken; +import com.karumi.dexter.listener.PermissionRequest; +import com.karumi.dexter.listener.multi.MultiplePermissionsListener; + +import java.util.List; + +public class SplashActivity extends AppCompatActivity { + + boolean isAllPermissionsGranted = false; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_splash); + requestPermission(); + findViewById(R.id.btnGetStarted).setOnClickListener(view -> { + if(isAllPermissionsGranted){ + startActivity(new Intent(SplashActivity.this,MainActivity.class)); + SplashActivity.this.finish(); + }else { + Toast.makeText(this, "Please grant required permissions!", Toast.LENGTH_SHORT).show(); + requestPermission(); + } + }); + } + + + + + private void requestPermission() { + Dexter.withContext(this) + .withPermissions( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.CALL_PHONE, + Manifest.permission.SEND_SMS + ).withListener(new MultiplePermissionsListener() { + @Override public void onPermissionsChecked(MultiplePermissionsReport report) { + if(report.areAllPermissionsGranted()){ + isAllPermissionsGranted = true; + requestLocation(); + } + } + @Override public void onPermissionRationaleShouldBeShown(List permissions, PermissionToken token) { + token.continuePermissionRequest(); + } + }).check(); + } + + + + + void requestLocation(){ + LocationRequest mLocationRequest = com.google.android.gms.location.LocationRequest.create(); + mLocationRequest.setInterval(60000); + mLocationRequest.setFastestInterval(5000); + mLocationRequest.setPriority(com.google.android.gms.location.LocationRequest.PRIORITY_HIGH_ACCURACY); + LocationCallback mLocationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult == null) { + return; + } + for (Location location : locationResult.getLocations()) { + if (location != null) { + //TODO: UI updates. + } + } + } + }; + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + return; + } + LocationServices.getFusedLocationProviderClient(SplashActivity.this).requestLocationUpdates(mLocationRequest, mLocationCallback, null); + } + +} \ No newline at end of file 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-v24/law_image.xml b/app/src/main/res/drawable-v24/law_image.xml new file mode 100644 index 0000000..43ec7f7 --- /dev/null +++ b/app/src/main/res/drawable-v24/law_image.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/contact.xml b/app/src/main/res/drawable/contact.xml new file mode 100644 index 0000000..96393e8 --- /dev/null +++ b/app/src/main/res/drawable/contact.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/girl.jpg b/app/src/main/res/drawable/girl.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10957c65f233ca98162b8ae4cb3ad7645242243e GIT binary patch literal 19552 zcmc$`XIN9;w=Nn)x=8O$=^dp=5y3_mLhnUDx`1?$Kosd!sZt|SB7_bBq(!=bfb=FM zp-E4u0YW(W?S0NZ|L5F&&c4q*AMQ%lvp%eqnT$Ec9OZq-%=PT`3V>EyT}vH6bb|<> zNq7OS7XZ%yME{q^KZE>V4nah8{R2Qp4wwTh5EIb>ZqN}C(-B?w0C)fZB9ea}8}Q!` zq8r3FNl3}aDJZE355Q>wH;9OdZ`>p%A-Q>z@N^jAKHw%D3H{ysPe>UI?8$h27^UBT zDkSH7THDEFIELnzaqx|xpk!uYWn&i*6cQE@m6dxSub`;(?75n{hNhObk+F%XnYo3f z<0~g;7gslTKmUNhpx}_VA0nfoV`AgtQ`6EjGP6Es=X@h9_7>;E}0I6g5sH9a#sH;+WEuB~ru{@vQf93CB?oStFNFaD8>2tfQFQ}*wI{V#G6 zCV}Y2&6~tG$^Max=tdCXB&NGba`!$d{SyN+dmjc~>G$M}Pd^pbc2e-k7^0aRe8(u6 z`DKv;n14k3H_86r2^R7HNwWVC?0?EN54c54L{J_v9Y7U;#|s0#+;~R``2XQTGn6vl zkEg6g%b$8r2dLf%cIew#CF>a$)shJCWa++$WDkl4DT3L=1dd=GuF|>%!^LJNqVO!1Tjb@Nyl1%%!e}6+BOm*$a=24;S^Tiy3+0T}*dgEG z$?lN=}D8){gP~0$82i!b6_i`{2%i zaG4~d;oOy!Zn81ZpQ{K7t6l^50=@9f(^gv@w~f8kVSEoo0VodyztT~i+xt;XF>qT2 z^>g)H;v{>eE(H0gq(iDql(uppEJOtn>NYxgglH18!!mvkwGFyF@W!QIX zAlx76^>@nOU&Kjbp&&|gtZL898|y9n-F#Y^ZloQ(8drO1Nuc^hidK8$gq&MM)9jv< zp@@^+nl~FhZs~5YMr4o6afwDk^D~+Q2bs3=ByID&y1WwCQH4RMD7>b@G~WEzBWv5+ z)YaaWAM);8DGRzhW1QsLG6{XEw{3^a96pzYctDEbxQ4e+9+LnV0s2J$#|w`TeppM8K&wRufZy!K!w&h?NE&cuK-aC=~1SHJAa}5t&+V zzIAHL1!miE^GG!a@O12;#=!HQ<$%wfT}3({Yga^bYac$&L?rYWv_czR|<89!7MCsY31is&Os;)cY=}8V(kVvzb8-7N1kK1QE6NcJ{o1Jp*g~be@r0BFocf_bZGn~50@bBrDr)?2 zWSdm0a=)^QFWFTnZd|kE`6o7uC#()N&9A*U=sxu67sYou{59!zsF{s_Q~8W8rkcXA z@@czhygp33Qc*i!+b1&beJ®Q6it&>)=IiFMNPC7({8lnm&fLOPMt%(eWj3pQ02@9G(;7I4`t= z?W53;-o&FA-)8NCXUWi*QEYhLcgWP?ui+`Mp;4Nb&ksjo6xw)GMBBIMXi!Bqxz~XC%h8!dS(Uc`d_RJ5`f$ypGK;N`D&8I;$p;C-iTlOzn+$t zM_9xG2nGjb9W*qE_f5}9bY%QfBDkBXW4bUV0DF5!HI`>y2sIOX4R~EWk1)q@&WuPX zd#)y_cB&9JrMFtSa#OLl{Ow?E()5cxoqHh{W;R4ADQC5)ec%r7G{EDqPMz6y?>lb4 ztZTMM?YvS}jT>!_FIF_M?tc_4lrmhd4R$|SL7S^MFN$;BlHh>r%3~Db>-rr2RAVNM zw@wokzuRNoaSJZFSm>&1yzI_p3N=m=bNl-WPs}{m#9S~~2VGj?gWO3nAvCjOe z&F*8)bkQL*qRr593Q^(VVn6o%1ta-YGkI@T$v>>kEzE-*!@512sAgSasdYG>UN({Z z$-qluVNVODsBP7F+MbcBd3X(A3U2M;elW#ig?WUYlKbH1>7oJ^fETkgZMm~KG*9kJ ze2LZt>I-)%!XF;_e6ue0k?8&Pm4D&nyNXWcnu5l=!8g|cuBf}Dw?AN~(;BpoTY}2lmfa<|MzA3Q{j8GD zxc({!&%d4JCjQo|9+Rf;$**9~xjcubLzh&ZOe&sRu&;W;q^|)(R`Nz?9=Q0cFRXtA zz)T8OWa|2vV#GhNPKoPogOF*z3REL^hF-aL{tiFBHyHl?_?*{++N8b2Vqu-!4l}V9 zJ~4xSzxQ8yW>V)SXug&D)Nx7rkNJXZFf^{ukD?u(Ijent#8KLtbu(G4nkdd(JdlbN zxyQ`F65Z3{?N-iIXwq%-XkX7JG+rCy(c*Dns`|c?^vDeR1Y@V&Hg&wkH>1KHd@-(T zrfZDM&t%0JQOgU9&l z&l4XyT@-`_L{?-fs4g1aB66+DSqB45M03>J$#m$bCSasfn!dWd5Bq}=8y}{nHY$%= z{=Nw~eomNFqH(Nzm*qi9n+-CB80#=_!b68e*p7qb3upV!s^B*67t|_!ylI33^zyztv~LZL z#rwK3k!u&PlEVgl4dRc|>TniUzr%lB1Bm@q=lWM--i6ctwGseQ{rxMK^yCSd8Ah^* zZ=0KU3ZnWzD!?PR?2Zw>bkb^}ie7*i55k#Zi0@&ZrC?K%{BFDI$oCCxn>+8J_Z?(1qvn0@(I z4L_8Xl`urVezIe#s=>@Os3q~j$%XD(Gbl>}4e7Zx$mT30=}pzehPStsJ;dpe z8g3MRbgVV8w*S!ca$Ur55N4M5W(wWWFJ)9@8O>fGwdwbw!^^i;J60F%rqG_WaW5O+u!tc zx9soUQ{T|?g4+n`(Yxb$CT;ELg1sj6zo(g@H{-yq^`Ih|AwTvulP-TZ2TX9z8;dg< z?Y4W(;R1!~IZ3xnspt$1x>lOAsI>1Dedt43zp=<%yjHSiYOp z`Os#<+kbp&!rL^nHvHJ=tVmL-uj2+r{+%4F>@|SSLjB|N0@&5{?KH%Xv z%UqAFeA~M*5zsDaL5GrmVD!_os;HprL?VF73Z@zMCnmP8imz+3XFX$G1X+G%b?=9R zn{k(Oi0OSbyCNf;^DeAu%6MYe|e#kZm|arHn3) z2y)mHG~lM{;*Ax#X^7>X0XAbFT|RYVx1WUDMHcW+dCHOFo;Z24c|Nni2B2;x58>&P zl=|JW3~O`sCQgP0nJubb3)T_qgY)~HGHPtEt}2;#%hlwD=5##PR+i^u@Dvl5iug&f(2AXK9u*R7l23~oHfbeRLUzw~f7OksO$*A3sA~gqaCN+H ziKKwNR*PRSgX{jd20X`V9p__IyEL8=zx#!l=4LH%?O+|8CYPMcGg>b6ZTZ8wF1f%LksHQ;DczBub8E>NQqk`mO=9W~cD0kCpJqn%@#C z${>p792*Ve`2MFY7>($0g`)WjNNgL=cY@K~+{RdZU@W+Y?p@4S&*;Eb;!M0b8Z@q0 zR%nWaKB&k|{TO1%Hbo!wDET9!x`1?_4F+Yjw0+y&WIG2rWp2)j%z!WhGVXGJ&B}(9 zzN=}e=>{{Q721U4zQTTc?T`5-=R48F=i+ge9_M4{GboScsFteSN7sPpV^wBCDdxO! zLs?a_#1RFi(4tzi<#=Sd;NM{mD5 zst-(UdVY>uHj+V(z60rEjQYdrv3@HHWRp1Hs&1$r`ZUS)eLQ@r=*`EteKwP}Trq`T zSy^W>{~UBxq|}`H&ke_-YYy^JVYQ~bg{c^ z%FVybEsi$i(~1F}CTBJ~IeX*Zi1%_f>V3k>7ai9vs^%5CdSVl<0guA(Vj4YA^6VHE z_DyM#!n-RixZCfYQyb;pCtP2>8n_Ke5q*?(ebUi7pVu zK;OwpJRJ{loK%*bM?_TMo_uq|3)DotL}cks9w*%Ofi86hK!KoI+XR)i2b3L>(*BHs zs6An&Pl@A=sSP=LQXZuzdZ*)C0}`VHka;Wo?Z~TWJXf%e0l_?ces|o(kEzl^8w(zh zE^T%zHFfjEoCZZdF!#dgRAKw3hkEUt;?=dHl4Djb&#R{uC2X$&n$iN>ZyBYi5gT>DfB#4!7%V^7kWcIWEA#hZ=6^2~nhP|Kha`+lrmOay+9u`5CIhTmTg$H2&4@C_ zjl+sxX0|nL!XBKZr+W)72c}vIyh`OA&qSb?`F3?uuyRd!N-dfwyB<0$^wg$xntpbq zgR}{ozv_fht|O5+{dTy#Wl$_gtPmUB zC&fIBObU8daH)pLj0r0o1{b?Kc3)%`Quo4f^Zx6CdA&CKCAY%aD_lq99F=?%bb<$Z z508XgnDcWsbUe~3EIV=_f2s){3ae0$r^v-L^-Cu@7Xg>TF>su^Ulo3xRyH8bL6EE59lkYV z7`)Tjc-q+FG~DH#v5zxDnuU6@m?y5UwY4>+sZBf2N9%eFCH5^(sxX8}wCSVa_P#h% zC1v}rU=NWs&=cF@9c0azmV%STV!5L)Ub8n;)FktvRPp!9_ZwMC$jWrXe&a;p@tmHi zJhutsJL{rwApzEBb86v-era05C5jJHy&aDh@DyX0BFo{Ustp@uC~vlFz)S36;U)M( z2bV{Sj5X^tmrY4L0p@r!XY)L5>rCUtJGav5m50w9%eI$nddhio>?$s_!(^msSeu_k zHH*E!7cycKGwd_b?*qRzk}f<|WF(btYL;ogW4}FB`1z%~L*9{625RfO_yeMmB+9`` z@^DxT`l0;KI?l^jg%4~|T{A;9=GLYbPm|P4nWi+$R)taDSM~hwGoB-(OIVN8P>;Uq zl?YL$T!>e%@*PD`RPn~R`sy?Ws>hFOV|N;5Z>`o`_ER&}3^;|MF;hGx*?7Q9=RMIS54e<9$Ok@N8j(GBg>_1PH z$w)9#NV{&;#3i~(5HZG&VB#Ob1+jdlha)9ORqkMKO^jJgH8;H_Md^4ztImR8bCchO zm38d%({Tq){-huFZ_1Pmji8E8J=~t^N!!UzP@k#XLxXYj9(aoC6(B7SW3b<;7?zm1 zPLgEO$Q@5si+Pk^(uMe(YVM{Yb(l1?RoK zPha1ae*uUkH7+i+hBm<*#XNG_OW%LpVLv$+bNuS|Ho7`^P`YbEw;|_n<=ZCzGpdjG zeBDX{Qx_XLt^n5nf#vy$(+KR$r60%-TY0Gyybq=g&bkchn{KhqauGjTHpg;2!$|Bm zF5kxU{LOry^N>T#Mnfc?Q^mT3d*dn{shM3~J zk*JIVTeyk8~MkZg4l-&~=^oo>(?nBr*o0FoJ3O zl^EttByLSYg($jw-u4-!`lP-s&2iZ!x^qJdK$Hpu5KX4dQXciBdGc2+#YrserbMgA z<7`?8p_JfsFFWaV{7MG`xH7J$GA(t(uS)1jA{=??%4*Wy0<|Bd5kl&n;-{rT1l-BG@R{9=U#-vkP2_GobXpUsI^8M;|RX7Ht%z z@0Te>TT<+k1`T3uf77s-4;wKkIcDjiiDD1xUc5c;v0$YGVOoUdm$|DetY`inY{rk& z=BKxrq6_C_o*P>acc?G&WR@MXsha?$3Rx7o%*(3WGsJVFX3$768+9=a@3_Tw3Gbhv z=c~IeEE^eRNEk}^6>CVSI5Sm&KQh*M9e*BQTr#9I<#b?V1e`TmkMvXtlCo{iE~5PO zZemdTDYW$QkS2C>C=oOgJUaMpKcM<0?vG|+@*KOyn{m39(71b4j;R(Y6zqp4L=>ze zfVJPmB){tYJc(ZI$?n=GwXfQwh$SQAd27}!qNxGG^4VFOcDr%e6g-pTpq7+SF0<0QA=lo5c$2z89B?zI2UTFfe$W?k6 zOyF+>b98l3qKo}x-v+j?>agK-Rv-S=|Cp6(@vLkC>!ESf|7$*U-ed1J3ws*QQVY}#S0Ih#F?-f*cTA5c? z5tsC%Wp9V6c)(L?0EZ>$(XogN!de(EgnEyU7RN$RyAT4-8(H6}rxmzm240UvNX$XZJ zLHc=$M%jY-K97e$Bm=sz7gYsDy{w`#(5OnYrPLoAi~^!*L-kC0lF*tm!xDD1VF3f3 z-Q0ANR1jHmNn%RtzOl|y=~7ux!ll8HWmTDL7%a@mv&_QQZKhVDH~*@#H{;K3BCX1* zufalboj=9+4VCWk-K3`uzmcC427j2cws7im6{-A?P)uE72oW6e?i#?1r*<{#pr65u zSYgjrH1?RjVJ(!OAc3)X@`%I3vmZ;W7|He!?=rU~YHS%g=SY82e6@C(<9RcJJ=cAS zIm-ZU;mt9KI>}xwVBv|Vj>~7Y-+aapS*S<=C$t1C-5KZ8(b#Y5oO^!7TZfZP(i+D+ z5$Br}zq?j_U!$TeqJC{V3Ok@@fBB2}IwEzlk!6>bxXCh94HMMVSPm*rc~%ngv`FXv&T=n&vq#y!`;S=W zR1eChSx(9S6*?rGyOPb}z8rn{NXD&4ihjb17TQp8H=_jK^vtX)Wx{HtA;bT?2GrZd zC`+Nh^naCjVmjD@%`7mgJwOikCes|27{{p-s$rwPWqM`%Z_BoF@Y39p#oz>!8F*Qh z@~U->Y^Pj~i^CZ4BZCJGdWgmHL(u$3GGSs|t9wlIsss}RcV%$ANM*w&d& zM#JwD4~kNFOH&4g&Sh@M?b|y7FT2(?`Y_C%hUwc*4T@zW^3kH63Ii$)j-he^n8A7I zV15<&8TJ{nSM+zcPhgN9)17%(>Pqpdf;`Lq25T$~)~9oonO=};JMW`w_=xy45UX{S z;z^SNQga`IEj{n=KK1)T2CQjLBra3p$@Z4|8mLJ$|FSO7fohTNcH5)$OV)~TUe)%T zYk*5+7J6#{Ojo^`+~6^Zd{NL663+e=Khraw=E0Is^00#ORYNdH zLbK1rvIQ0wZ>b)&9cFK59Dc*7>FRifMd)j*WoQ5MsMzcn(7+omt6EJ5SwIiZ>$G8C z>I&~m0;>}3^6VPGL+=vv+y|eG2;v(#Pf6FmarFR&BTmrLvyzMf6?`Ep_rrs|4cza?>hvfB}?PNB_8;k!dT}p(j z0e8BpsP1sfVNakSs)-YhNOVw_jgW4~WW&$3IXCbsgx(FaZL}?aze;6HGV9CI)dPE&D#7DTNI_P#?hc z_QWP4*ibY#*Hw7YUf|B}Q>@0FE+JvBW!<$!jXGBqt8R~IQk&sK(Z3m z9N`_eB&}nWK+WIpt@KAe>e#*K@ku;m)@-aF>i9vQ?$$O335?G^g^l=c;oN9&ELo1!2UjN zF(7krpIACD{g2!HQhqCch1L(d!jiO?ZgYe5l>*ZhxpvrFA&zII&YMD$=YFV795Wf7 zQUJ5LVn-;nT%-taN`o_ewK{4^E=98mBamEzOu1>XbCI8!RBo}uJRdfi&|pWsRUlB% zhq?sThiT7;>A9XL6ka|;7f`q)+s21@-A*!}hN?X+_8xN6>V1%d5KA+w51i18*zmO6 z{9}jqhQ<*{$7TBPXEW#kl3+RMEi5we(*3*j>1<@-R)G zJdjEQxk#gzG0{6yqvc)hCZFS!zh78_&C^JKh5h-ADY1yBa@=Fq_``a>8JCG@t))px zsGpzEU}LIopPj`=pC)?rJ`G2flSPuYf_Q*vdbxh83Exu_$02cbx}l{ml%iLLww}mx zj)7mI0L}3$Lgx)D@jJ4|k4QjUM^@V>uahlq8t8~@F?!#<;LTM1@`dsRI|r-846j9` z>1E6kjqug+cd`S~^LiK65WmMPV>T9(R9iv&NHk z){`Hc_`XPcfO@eY^|MYK!I0y8UL{&UBlW{xq@_7gj~CW(m%NhRa?md=Ny&IsG(&*$ zO?vu>50p*M*C5ekUFfS8&xpp}U4pUKVBf=bl#<_H$_6`Xp&`){UP6tHnB~ORq)n(K zFX7p*?(Ev?cn;dTKa78ge?YS5eu3WwqGK zoDRH4Ua`CP#iXe*PBZpl^r!rVOGK1{8ShE~&ya#ubdBoV95+zCo)>tDyrA8ZdkODx45>Ou~=EBCBgFi4g8q@AA0X9 z&4Z_*ItKho6)VUbcd3P~VxAONVG1AWAiBhnQ#wpS1pwoVLeb-9z~LzaBg zTc@U8NWwC8INKk0C6ECS4DDPUW&7K~oOwD(aSia1Tda5s19~zpx1_p`@t;#vz<_fG zFaxnmCBOWF(NsxO@EeISe8n}O7P@PL<~yawihTvqU@4H*yZNNO9m^;lx^3tAgFcl< z81dS2TP(Ei?Jwp=$b1g`rvW2fKS^VLiFrS1cCiJa&j!5!{ekk4^9iuA9B+Ng-;l_1 z*z4hhZGw5`7H7s@bbRkKMqC3@w6gGTNfPka0Ht0+>hv418n9jmzGVQE9~;f0cz| zhSm=L7*FsUd49i{+lpaiUF+^g&O^a@(#f0eJbwR6OA}c68i2NzN_pE3!HId#jjFY! zE@)5rpJJ0%V^Pj_djbgtxw`1gTov+VPtO4R^6mPkKZ^cTW#4XK`w0`A6(tL#O_*zw`V#z5eF{!Ptr~a2 z!KHHAd9vtXg)#k9y=AGF9p*2a&pX;JKhsi`UC9-yjUU8gd#8pKid2T{lu2C@e;(>_ zU6isY^sgsJ%Df&@?th7%tMJW}CBv4`Jr?}S6SP1R(}_Y;N%n>L z^=Qi?*#<@Z%7VxTakUX%%EN-+i#Li>y#~}8OMX?Zz3nT$7=ebBYq^we9fZ9(qj4&l z?JRZ6+{HBnDuvZmw&yo1m$XrS(#WqZuVM@8IjyUo0M_oAHhRns&A!rR30H;04aO~WhC>wqpB5Gr3Y(m_pGVi>rb_Z z+|#X{o>nO7L8Q-wNO7x3?_Ix3Bb+;}4!V1VhXAZIng3bou6%;@e5Qw9CH~zM2mgG0 zK+{)=laMTaUlW-2!N$DpNce}1!x5(do5WVjScV;riA*$Qondqks~YcDV3zqxu|Slb zP{vak7I0ky{tP<-Z+8UHU5*ke$1emxpBFzJ2x*kxy~IFP1)$vrF$Hv3F$`H3!L0>A zsNGfW#q@B?Oy>Tu+{mwVZDcorMvAvRLyp2#WBJCp{k{d~^xkRE$ug4Y5@^LTDIkP@ zsnovzq1VA%fj;4ZpGrfYsAHfK9ttMjXE~N>z?MgeXWa#Y$i&i2zx>}_FaJ*U8FW6Q zK4}R~w5qhscsu5$;AD0COJPjeuO+^072~h_dsn!bk05h>5<;nqJ-Yz90)N~5(82+} zkcp6<+An%~#$G5lh2U_t=lUe&0O1??C|Z~wtDuMBE9-z@#Cn?wO0#obiNaK9JK~*$ zm{@ts$H8qjbAQq9J1GvgT>(MnWBDVKYT~~_h1rCXgBbzafd1SwGloHhLznty?`NEt zT&<&BKA=qXQWEgBKIuQs>VM!mWQUuCaNUD8g_VZ?Mo_l}iA!_Q^g^hRW8zgcpikw& zz#jI7mWol7xido&Cp6h7_*S^hXJb%~2P^*uiTPgIW_kCS?qdq-)}KA}F# z%qUSQ`2xqX@$=&Hhk>c8_4pJvAxUCslu~U|LrL`Dy|lM-l>S=|m|?r%LBmcpEw^Fq zuk8~}p_mxt+3xwuK|}#%3%1(>oji(?(UR!zuJk}Ls?f#sY!Y;GVOvt|YD+fRrk+qv z^<6epOk+xRm@*)9gIbWI6&9o;7u-R&;(=`TsuWe3GhQo+tNPZGGh)KqenLIzHqgB^ z5x#r$#@g)GLEmc?$>MLLl1Z;^fzjqsdd5YO-AErwCf;pZx(sU@)e3dDqtI=UcAESz zIaIN!9&QdfWcrSo6!e0&`-j<{-K*Gm zlT|O+vaQx@uPalsL_KRR5~9QNt$c91qJqtw)YOo&?$gIX^(QwuBNX^P*%dhG5O&ckrE}+DWu*B6glsg_Knh0h2 z2m&eNA*Y!prarm;C1PEyyG-WYED>e0MSFKe8PZ)*VlrtQk;#$?rOVE-Gnss?|fuZAvULHd2VYy&8n7edx;KXl9lH9 zZ9y|qIfy-M214#f^2c;WM6M0IH%jJn5VItS-kb>zk{Jw66YaPET7L^hTXTXjH!%?s zXAVf4*@Q*G*d#3sd&W)!I8C%=U|L_=>-Nk++iFT$zRTCEEW^y0HD$6E(F^Cn=O6 zR310ht_WUBdV)}V(lk}~X-4H{eFy|yffp$h@`+bXQekE$FuDPz!1um?Vp}~u`qOw0 z7nGBx?NIdAh#fm}xhCai2Km#*{Xd{5Q9`P6PwydS8zVLdRENqo0kHmi4LFP#$Gt$C zri?~*PzH0)Z>x9)RI_iZ2xIV-o_GH4mD+A!n04=977M39#9(51Tpgu$9)!|m_TZco zvq@`GBq8=vnp4uCJ6Nf9hrkW3)aL0#he1D}lpj6sSR}-&2&{0YN@{Mt#+jn1_t=C> zPH;-k+v@m}(0o73)Zv5uNa0nzasPZOV6<4U;nLDlzsBzh|3w~Mcm(;lu&3-Lhn4H6 z$H@ZK<%5T9+`x#EtQALFg}0Kv3B8W@v!ez5U<4%Ij4t_?4{L>&C|o-=ecQALB|4Rt z>zgZ`p0_Mp3FiOWFvkBiRZB9CA8f)?rUs^JQsEp9V*p{QGLT?$ zS0xaw^wpHkWwU2d23hDpu0UNs-b>k`_(+u-XK185QG{Y)9(3Ez5PuMo2xYy{a~G*T zXaxJ~{}Mq9)s`6n?a{d2`ZvmByCi3%}F2#Rs*Msw6d%H>6HE* zLw!0G>+WlUM&08>&e(o zZ}&+$Zylp&cnx68#m(V!?9fl_=8Fuj$`C7gb`;ehAWR2_JzD9VhN7kVSek;UeZJX( zyJ(ma3uq^$xJ^UWGk1Qxt&X8}Al zCfga*KL*8Lrp)CWY15@kXV`!IQO5lxk?vfd)FurgP2%15I)~*NP}Ru7{T!0}vnSN= zF?+*5=>l7=bw6X4TbxbD}P{t9Qv6eW~an2ab@V)D6vPG=H03*>;wcz6| z(-$E}MKQ#Az~J6M5&T__LB6MN%cZmd;|2{RTma%j)-NRgx+|y?!xII%zseG#Hy|PMh zQ;RlqHIL)-%1wVo_sL=kGt}pvz6r$hLb#t5NXO?XQLI#r_mRgb}La1pMQ5S;&Vv8!h`Xfj{86 zH?Ec@NdLHQ`;>AI(t8Fui|*|cQ1k64eVr3LxEzLHPEsaacPtSd?~ z2o$C{%~_XCC9#`iIPD1|*P{ycB9d+?-^04gx*I3D2@kjSeiyh2IVX7Q&H((qehdUp znQ#f*uCb6ys(ugBDgoVXOkC;&HSwTf$2vR|OYU?--j~fqlkkTeJL?Ssr45%)B39zY z)$GO(%fp9=p4j5HCg+!XytF`R+MDaCL1~vMKXZwinxjq4tMIikTeW`@MHXvs8a zU}6iuP`!FbAq4Q%S^+4fy55KYm;OxiJ2n5T%=hUu&g{;MCxq1H{>caYTh)V(?H+TY zaUPXz1r3qcYCZimX*aEU!1HS(8tBNxk2m8rN#_4Io9>8lv540PJlhb)Yk&u2-Ww$d z=N%{uMy&St+BgRSTgv=aZC+WaLla{?4aq;e^qOlWR^a(+|D_E1_lYOF@eE$O8vFT? z)rpD^yuP&~16c=eZq0eqN^TRCR>qYZtPOf@Mu?Qh+cSbb#yE z!x+0I2~a;RB9s!*YJ$Ia4dBxb1MWWUc>P+}Q5zf>C z*69-$m`fPY<`>;iaL~8ZmsFJDty{;ft1lg* ze=h=te;6n?(qa2ea()gskhn3=yMD?OJrF~<@6W3~?b4m>LT*3e{5Ih|lfn9k<3v?U zbtM8(7au;(!>;NMrgaZz_GWfnz6EwnNmdGo{6i0B7Xx2x^f0*XKny?c9~P z%U0RMZP;GLqlTU0Qk~*v5+3w~QX11|i4_Q@c{hj*=mE#%I4+V!&yHP?kA~ZO^LtLS z-spM+c*r)MJ(!_WmS;YreW)hO(9K)%N%vO#*brlUH3v*g_@&z0*6ldemIJKpj2>P1 zFCO>PA{gU}q$P09RGpD&KQ-S=$APOOLK?3l$}_v#3|<_2`x2AeY- zZM-J{=)drUWct3P1hhY96PENAk{32zS~Mwa z{Fox`^7O}mvMV@%_4C&dU)8)9qU1@pk{+`dvPxtW3vKkhDsW!pBU)VZdKYK_XM9sm zMriKJ@%Yd<71)n6^DUd#xO&+0W<1aTQ)8Dj+lyI|#|+&!9v2Jh++XBR4ASB|bMY!Z zU@IMOke?bQSd$kVE0OOc%PrW7t7AU0gk6058X0ta-!|kS5$EC#4@#rsZ zdkcm+oyM1Y}gX%jTcxkO$@lx-q7$TvAbOJu? z>q&Lo3`LloL*^kk_S|B4)2ug7=KG+$pY(Am{AQ2wDW5AesMdMi^fS?)@UyY)Xn>)Rb24Qn-|Tt#l2T2;_O= za4#t9@P~vZKSk_Kdo0z47kN=>;Flp!E?UOLiMJhm+Qk`IeN+yFSU0JB)4AFWDMyyMrTFK+IUUw z`*0=0JlRCI{~`qPrc8XM=!1-l*zFWx1E3N?NRD%jX-X9oO=uY-;YPO~d{FfsU6AQ+ zNorlNu?QbuX5GB6Swiu_7&8rrS&V!+iQgExp!#g>^eWo;la}etD`!gU*%z{zO@%;o zgf6JkQK#ulN3 zk^@et#S3^b&^UM$IhAY*Y$vPfi)fXO47`7kkzNa6wnb}Q6S2oy{hi+rveSF13c5cQ zPKl$y%AmpBnW?jX?Wpj~!BjukO^Vm&Q5;ef!FD>oSFE5JIc6)qRz8xY*w4fH?%NI>+C3_$ezAGKKiZ?cL1*xpa6RLtWxA;;mJd&S$gPxDEq>A-U> zWnGOVyTgm=iTE1;|AeL7HrcsL_<&t4c#jGO?tG#`3VM)x8jkJs^F$IFuUwEl9a8Wq zJUg~tFGU+I8HW*5Z^ztjMXByR5}c=&Qfox_RxUxqg1#v~=<2mOtE-E?OjK7TtvTU4 zsZfH6$}x(RPcCZdPIwA;>SQC-HfsrcZ}Z6#&6SP1o{pGT!=^48jJ^@N{%{4uwnb}Z zne}I8?S**g3A%@;GYH3-eR&5z-XVR}BGDlq%(5ciQ_TvxhY{*R#DvqqG0+cfGGVC7 z2S>d*^gGM*?4G}Dd34pU0eUTs^_e5G>?I{Re~M`YV7j-Q`X|=Sam*Z~g>k(|^xgn(o*u(&cx&{&Lep}I_JjPfeC zb86ey>cEuk2|NWCTFT%mk5E4%>Y!bFK^oHyGz@b%MIa-#RRhDFccI=|8Vo~`)|X>9 zttaFjJG{dc;Ho}ulC0cb3pkBN0q z%DFh}L5@dhv~-D*bUu4chEjToXuw?ox2MG%iAeqv!^E@%pmWOD{3`!fviS}1*$0h> zbnK@&DCuXKOJ!6MwPh=Vw<1BGatP6uK!^SZ9{ryz-haOr?vHzLRix?yiM4AI`ftTt z`B&2E8mFeIIhvVk=0ZntC703~QBliWLPJLd_hr&i!X;d?$U(VgW~S)LbqtfyB%%>; z9aB+HikeGkkg1g-lv$!C=`}RK`~CIKx%bTd?fwJrd){;2&v~BbvpgKtyjm6M^L4=> zMT21RyEryz-9Dck+#m*<@NfhNaDF|$_>Dh5$r@8Tv~;ekvvLB}(W&N#Nz1LgH=-qh5wrKj?W>`H~mMHgjsFJPhzlB|0T{bf@9pT~W@f*tY z+-JKWgWoXtXQEV1^DjJ_FWOvYPfopjh%ga9-_#NmG)Gw;&JnoVC~tuGE-+7sW@4X| zIZd>zknhmGFS&n^qUvSfeJk$PD0qJn>Llu-8x{T|=AU%nVS-SSy&Jg*k_!~wPttY? zi$iRStIB7wV?}@m5$_W`$wofH^QNO-wL7PANA-}_qGY>}=vBSKiWatup`&lD*-g%d z2hmcsCtTS9Y<472zYf}-z$=G(KdxCkRa&@M#h#hNjhTWAL{*vH2wRV{q!Xnt zT*x#fWNCo~%3i$9Mpv8)hmeit22 zEH(U3Fxi*xG^|-_Y#ZSSu|2C+5LaEU4k6Jhb~LOiG|^T8N3#qe6-zdUB7v`7v>l#sC^i%q`+J@yvm(A^I-Jt+rzqlv4`? zE*9mWV}EnT0ZFpxv(#`{rj^+5+TKATCPmM-idX}E`4kOyxP&HJ;`lf{b1{s-9tkte z7qRq~b*J+;$xDSEFIV6`ag85?#mORyYQmoZAII07^EjD|#`?3HFP^8U4-BY8kq~?m zGzB|k<=|<7U|ol`o8a3%Gb`;*#%))%F-BOiP|MM zn}XnDO3al5|FCYKVXi$W{yZ?oOiWq!AIx~j$Q#@Y7}P(RP%7|D?j{xK{EjC;Ylqp(jCOqMQcat56K_ua+|;7rmcIUw*o_N5K5o7c z>yIjWzwB$j=yTrFb~=c;eV;Mgk!GU3wUQMK{7it11g>?LlVw^gf{DC~;J4sfIKOB8 zLs`Qc*)hqHd|Al6h4elZagg=>Qa&3YQo#~j!7L%!*%79Ppakev_9dqv=`W4>r8-uf z8%j^08|V{l%YilIt%65G z-`8s~xkfl{#bl%&R90!MHF^;*+52XB|EXfw{2DLPDWKFCRrv*7d^+09piJ1zc=?KS zwVkelx)&6&p6QAnGn;DNNq@?sdff)AUu^1B4#_rOkU4vPdLPX%L=KMIVzW|X>I4-M3atwV;+}l<5o>T$={|OY(>pz3ZSnLW%@jPs zl+yelfMsQ0a33ab{tL>Ynq{MZhpPVtnb?`Rw{s1o^oLQ{q9UzWc9mZRb>A;t1};0> edvm|sg+MU%cb|iz{u^QNf7!D1Z_Ax_Xa5D%TEOZ6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/girlpower.png b/app/src/main/res/drawable/girlpower.png new file mode 100644 index 0000000000000000000000000000000000000000..7435b19dfc0956d4bfdc93242020cb5a319d14ab GIT binary patch literal 5054 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 F{11rQ*9HIp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_baseline_account_circle_24.xml b/app/src/main/res/drawable/ic_baseline_account_circle_24.xml new file mode 100644 index 0000000..873b40c --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_account_circle_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_close_24.xml b/app/src/main/res/drawable/ic_baseline_close_24.xml new file mode 100644 index 0000000..4223ae5 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_close_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_delete_24.xml b/app/src/main/res/drawable/ic_baseline_delete_24.xml new file mode 100644 index 0000000..91d0651 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_delete_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_edit_24.xml b/app/src/main/res/drawable/ic_baseline_edit_24.xml new file mode 100644 index 0000000..12388c1 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_edit_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_logout_24.xml b/app/src/main/res/drawable/ic_baseline_logout_24.xml new file mode 100644 index 0000000..17f6ac0 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_logout_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_message_24.xml b/app/src/main/res/drawable/ic_baseline_message_24.xml new file mode 100644 index 0000000..9e8a1ce --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_message_24.xml @@ -0,0 +1,5 @@ + + + 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/drawable/laws.png b/app/src/main/res/drawable/laws.png new file mode 100644 index 0000000000000000000000000000000000000000..bd2764de74133863f57545ec323eb4711b2f2c05 GIT binary patch literal 25870 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/oval_purple_full.xml b/app/src/main/res/drawable/oval_purple_full.xml new file mode 100644 index 0000000..e602c20 --- /dev/null +++ b/app/src/main/res/drawable/oval_purple_full.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/purple_background.xml b/app/src/main/res/drawable/purple_background.xml new file mode 100644 index 0000000..5ce947f --- /dev/null +++ b/app/src/main/res/drawable/purple_background.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/rectangle_border.xml b/app/src/main/res/drawable/rectangle_border.xml new file mode 100644 index 0000000..9057a66 --- /dev/null +++ b/app/src/main/res/drawable/rectangle_border.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/self_defence.xml b/app/src/main/res/drawable/self_defence.xml new file mode 100644 index 0000000..2b12445 --- /dev/null +++ b/app/src/main/res/drawable/self_defence.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/main/res/drawable/settings.xml b/app/src/main/res/drawable/settings.xml new file mode 100644 index 0000000..89b4a0f --- /dev/null +++ b/app/src/main/res/drawable/settings.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/sitting_girl.png b/app/src/main/res/drawable/sitting_girl.png new file mode 100644 index 0000000000000000000000000000000000000000..dac74ce0503789d5a0465a3e5a3ce66ce39c2bf3 GIT binary patch literal 9089 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/top_left_corner_oval.xml b/app/src/main/res/drawable/top_left_corner_oval.xml new file mode 100644 index 0000000..01f4a5c --- /dev/null +++ b/app/src/main/res/drawable/top_left_corner_oval.xml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_contact.xml b/app/src/main/res/layout/activity_contact.xml new file mode 100644 index 0000000..1e39817 --- /dev/null +++ b/app/src/main/res/layout/activity_contact.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +