From c0428758d5e89d1456979343fb4f32a224405935 Mon Sep 17 00:00:00 2001 From: root <viveksp.ac@gmail.com> Date: Tue, 25 Apr 2017 00:12:41 +0530 Subject: [PATCH] Fully Functional. UI Changes --- .idea/inspectionProfiles/Project_Default.xml | 5 + app/build.gradle | 3 +- app/src/main/AndroidManifest.xml | 36 ++-- .../keepyousafe/ContactSelection.java | 17 +- .../speedyapps/keepyousafe/MainActivity.java | 80 +++---- .../speedyapps/keepyousafe/MapsActivity.java | 52 ++--- .../com/speedyapps/keepyousafe/Settings.java | 91 ++++++++ .../keepyousafe/Welcome_Activity.java | 196 ++++++++++++++++++ .../speedyapps/keepyousafe/alarmService.java | 2 +- .../keepyousafe/changePassword.java | 46 ++++ .../keepyousafe/confirmationScreen.java | 133 ++++++------ app/src/main/res/drawable-hdpi/contacts.png | Bin 0 -> 580 bytes .../res/drawable-hdpi/ic_action_alarm.png | Bin 0 -> 600 bytes .../res/drawable-hdpi/ic_action_countdown.png | Bin 0 -> 952 bytes .../main/res/drawable-hdpi/ic_action_map.png | Bin 0 -> 561 bytes .../main/res/drawable-hdpi/ic_action_name.png | Bin 0 -> 608 bytes app/src/main/res/drawable-hdpi/settings.png | Bin 0 -> 836 bytes app/src/main/res/drawable-mdpi/contacts.png | Bin 0 -> 389 bytes .../res/drawable-mdpi/ic_action_alarm.png | Bin 0 -> 425 bytes .../res/drawable-mdpi/ic_action_countdown.png | Bin 0 -> 668 bytes .../main/res/drawable-mdpi/ic_action_map.png | Bin 0 -> 380 bytes .../main/res/drawable-mdpi/ic_action_name.png | Bin 0 -> 412 bytes app/src/main/res/drawable-mdpi/settings.png | Bin 0 -> 552 bytes app/src/main/res/drawable-xhdpi/contacts.png | Bin 0 -> 673 bytes .../res/drawable-xhdpi/ic_action_alarm.png | Bin 0 -> 732 bytes .../drawable-xhdpi/ic_action_countdown.png | Bin 0 -> 1209 bytes .../main/res/drawable-xhdpi/ic_action_map.png | Bin 0 -> 685 bytes .../res/drawable-xhdpi/ic_action_name.png | Bin 0 -> 778 bytes app/src/main/res/drawable-xhdpi/settings.png | Bin 0 -> 1060 bytes app/src/main/res/drawable-xxhdpi/contacts.png | Bin 0 -> 1098 bytes .../res/drawable-xxhdpi/ic_action_alarm.png | Bin 0 -> 1204 bytes .../drawable-xxhdpi/ic_action_countdown.png | Bin 0 -> 1975 bytes .../res/drawable-xxhdpi/ic_action_map.png | Bin 0 -> 1116 bytes .../res/drawable-xxhdpi/ic_action_name.png | Bin 0 -> 1251 bytes app/src/main/res/drawable-xxhdpi/settings.png | Bin 0 -> 1758 bytes .../res/layout/activity_change_password.xml | 96 +++++++++ app/src/main/res/layout/activity_main.xml | 27 +-- app/src/main/res/layout/activity_maps.xml | 2 +- app/src/main/res/layout/activity_settings.xml | 169 +++++++++++++++ app/src/main/res/layout/activity_welcome_.xml | 51 +++++ app/src/main/res/layout/welcome_side1.xml | 19 ++ app/src/main/res/layout/welcome_side2.xml | 39 ++++ app/src/main/res/layout/welcome_side3.xml | 44 ++++ app/src/main/res/layout/welcome_side4.xml | 40 ++++ app/src/main/res/menu/mainmenu.xml | 17 ++ app/src/main/res/values-v21/styles.xml | 8 +- app/src/main/res/values/colors.xml | 39 ++++ app/src/main/res/values/dimens.xml | 7 + app/src/main/res/values/strings.xml | 19 ++ app/src/main/res/values/styles.xml | 2 + 50 files changed, 1066 insertions(+), 174 deletions(-) create mode 100644 app/src/main/java/com/speedyapps/keepyousafe/Settings.java create mode 100644 app/src/main/java/com/speedyapps/keepyousafe/Welcome_Activity.java create mode 100644 app/src/main/java/com/speedyapps/keepyousafe/changePassword.java create mode 100644 app/src/main/res/drawable-hdpi/contacts.png create mode 100644 app/src/main/res/drawable-hdpi/ic_action_alarm.png create mode 100644 app/src/main/res/drawable-hdpi/ic_action_countdown.png create mode 100644 app/src/main/res/drawable-hdpi/ic_action_map.png create mode 100644 app/src/main/res/drawable-hdpi/ic_action_name.png create mode 100644 app/src/main/res/drawable-hdpi/settings.png create mode 100644 app/src/main/res/drawable-mdpi/contacts.png create mode 100644 app/src/main/res/drawable-mdpi/ic_action_alarm.png create mode 100644 app/src/main/res/drawable-mdpi/ic_action_countdown.png create mode 100644 app/src/main/res/drawable-mdpi/ic_action_map.png create mode 100644 app/src/main/res/drawable-mdpi/ic_action_name.png create mode 100644 app/src/main/res/drawable-mdpi/settings.png create mode 100644 app/src/main/res/drawable-xhdpi/contacts.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_alarm.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_countdown.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_map.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_name.png create mode 100644 app/src/main/res/drawable-xhdpi/settings.png create mode 100644 app/src/main/res/drawable-xxhdpi/contacts.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_alarm.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_countdown.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_map.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_name.png create mode 100644 app/src/main/res/drawable-xxhdpi/settings.png create mode 100644 app/src/main/res/layout/activity_change_password.xml create mode 100644 app/src/main/res/layout/activity_settings.xml create mode 100644 app/src/main/res/layout/activity_welcome_.xml create mode 100644 app/src/main/res/layout/welcome_side1.xml create mode 100644 app/src/main/res/layout/welcome_side2.xml create mode 100644 app/src/main/res/layout/welcome_side3.xml create mode 100644 app/src/main/res/layout/welcome_side4.xml create mode 100644 app/src/main/res/menu/mainmenu.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 28d5863..e02c8b7 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,7 +1,12 @@ <component name="InspectionProjectProfileManager"> <profile version="1.0"> <option name="myName" value="Project Default" /> + <inspection_tool class="AndroidLintAppCompatResource" enabled="false" level="ERROR" enabled_by_default="false" /> <inspection_tool class="AndroidLintLongLogTag" enabled="false" level="ERROR" enabled_by_default="false" /> + <inspection_tool class="LoggerInitializedWithForeignClass" enabled="false" level="WARNING" enabled_by_default="false"> + <option name="loggerClassName" value="org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger" /> + <option name="loggerFactoryMethodName" value="getLogger,getLogger,getLog,getLogger" /> + </inspection_tool> <inspection_tool class="ResourceType" enabled="false" level="ERROR" enabled_by_default="false" /> </profile> </component> \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 15bb4ee..109ac10 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,8 +24,9 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) + compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:25.1.1' compile 'com.google.android.gms:play-services-maps:10.2.1' + compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' - compile fileTree(dir: 'libs', include: ['*.jar']) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9a296f4..8674a3f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,7 +6,7 @@ <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" /> - <uses-permission android:name="android.permission.INTERNET"/> + <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> @@ -17,11 +17,10 @@ android:icon="@mipmap/kms" android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/MyTheme"> - <activity android:name=".MainActivity" + <activity + android:name=".MainActivity" android:screenOrientation="portrait"> - <intent-filter> <action android:name="android.intent.action.MAIN" /> @@ -29,19 +28,20 @@ </intent-filter> </activity> - - - <receiver android:name=".SMSManager" android:exported="true" > - <intent-filter android:priority="999" > + <receiver + android:name=".SMSManager" + android:exported="true"> + <intent-filter android:priority="999"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> - - <activity android:name=".ContactSelection" - android:screenOrientation="portrait"/> - <activity android:name=".confirmationScreen" - android:screenOrientation="portrait"/> + <activity + android:name=".ContactSelection" + android:screenOrientation="portrait" /> + <activity + android:name=".confirmationScreen" + android:screenOrientation="portrait" /> <!-- The API key for Google Maps-based APIs is defined as a string resource. (See the file "res/values/google_maps_api.xml"). @@ -54,11 +54,19 @@ android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> + <service + android:name=".alarmService" + android:enabled="true" + android:exported="true" /> + <activity android:name=".MapsActivity" android:label="@string/title_activity_maps" /> + <activity android:name=".Settings" /> + <activity android:name=".changePassword" /> + <activity android:name=".Welcome_Activity"> - + </activity> </application> </manifest> \ No newline at end of file diff --git a/app/src/main/java/com/speedyapps/keepyousafe/ContactSelection.java b/app/src/main/java/com/speedyapps/keepyousafe/ContactSelection.java index d75fcf7..cd2b497 100644 --- a/app/src/main/java/com/speedyapps/keepyousafe/ContactSelection.java +++ b/app/src/main/java/com/speedyapps/keepyousafe/ContactSelection.java @@ -33,8 +33,6 @@ public class ContactSelection extends Activity { public static String file1 = "MyPREFERENCES"; public static String file2 = "PREFERENCES"; public static String file3 = "COUNT"; - - private TextView textView1; SharedPreferences sharedpreferences, sp, shared, get, no, get1; SharedPreferences.Editor ed, editor, num; @@ -48,8 +46,6 @@ public class ContactSelection extends Activity { String n1; String name; String number; - - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -63,17 +59,11 @@ public class ContactSelection extends Activity { editor = sharedpreferences.edit(); ed = sp.edit(); num = shared.edit(); - - } - - public void pickContact(View v) { Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI); startActivityForResult(contactPickerIntent, RESULT_PICK_CONTACT); } - - @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // check whether the result is ok @@ -223,5 +213,12 @@ public class ContactSelection extends Activity { } } + @Override + public void onBackPressed() { + super.onBackPressed(); + Intent main=new Intent(ContactSelection.this,MainActivity.class); + startActivity(main); + finish(); + } } diff --git a/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java b/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java index 024306e..8f72420 100644 --- a/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java +++ b/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java @@ -14,9 +14,13 @@ import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.support.v7.widget.Toolbar; import android.telephony.SmsManager; import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; +import android.view.Window; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; @@ -28,7 +32,7 @@ public class MainActivity extends AppCompatActivity { Intent intent; int choice; MapsActivity maps ; - SharedPreferences firsttime; + SharedPreferences firsttime,settings; private static final int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 291; int backCount=0; @RequiresApi(api = Build.VERSION_CODES.M) @@ -36,25 +40,22 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - requestPermissionsApp(); maps=new MapsActivity(); firsttime = this.getSharedPreferences("firsttimecheck",MODE_PRIVATE); SharedPreferences.Editor editor = firsttime.edit(); + settings=getSharedPreferences("settings",MODE_PRIVATE); String checkString = firsttime.getString("status","false"); if(!checkString.equals("true")){ editor.putString("status","true"); editor.apply(); - new AlertDialog.Builder(this) - .setIcon(android.R.drawable.alert_dark_frame) - .setTitle("Instructions!") - .setMessage("How To Use : - \nStep 1 : - Add Trusted Contacts from your Existing Android Contacts to whom Distress Messages are to be Sent! \nStep 2 : - In Case of an Emergency, Open The App and Long Press The HELP Button! \nPlease Also Do the Following to Ensure Proper Functioning of the Application! \n1)If you have a Dual SIM phonw, Please set any one of them as default for sending SMS from settings > SIM cards! \n2) Add this app as an exception in any Task Killer apps if you are using any! \n3) Setup a PIN Code in the Next Screen for Security ! ") - .setPositiveButton("Ok", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - Log.i("zz","OK"); - } - }).show(); - } + editor.commit(); + settings.edit().putString("PIN","2020").commit(); + settings.edit().putString("alarm","on"); + Intent welcome = new Intent(MainActivity.this,Welcome_Activity.class); + startActivity(welcome); + finish(); + } + requestPermissionsApp(); intent = new Intent(MainActivity.this,confirmationScreen.class); choice=0; //Intent serviceIntent = new Intent(MainActivity.this,SMSReader.class); @@ -70,13 +71,7 @@ public class MainActivity extends AppCompatActivity { }); } - public void contact(View v) - { - backCount=0; - Intent i=new Intent(this,ContactSelection.class); - startActivity(i); - } @Override public void onBackPressed() { Toast.makeText(this, "Press Back Button One More Time To Exit Application!!", Toast.LENGTH_SHORT).show(); @@ -86,7 +81,6 @@ public class MainActivity extends AppCompatActivity { backCount=(backCount+1)%2; } - @RequiresApi(api = Build.VERSION_CODES.M) void requestPermissionsApp(){ List<String> permissionsNeeded = new ArrayList<String>(); @@ -101,9 +95,12 @@ public class MainActivity extends AppCompatActivity { permissionsList.add(Manifest.permission.SEND_SMS); permissionsList.add(Manifest.permission.RECEIVE_SMS); permissionsList.add(Manifest.permission.READ_SMS); + permissionsList.add(Manifest.permission.ACCESS_FINE_LOCATION); + permissionsList.add(Manifest.permission.ACCESS_COARSE_LOCATION); permissionsNeeded.add("Send SMS"); permissionsNeeded.add("Receive SMS"); permissionsNeeded.add("Read SMS"); + permissionsList.add("Get GPS"); } if (permissionsList.size() > 0) { if (permissionsNeeded.size() > 0) { @@ -126,9 +123,6 @@ public class MainActivity extends AppCompatActivity { // requestPermissionsApp(); } - - - private void showMessageOKCancel(String message, DialogInterface.OnClickListener okListener) { new AlertDialog.Builder(MainActivity.this) .setMessage(message) @@ -137,18 +131,6 @@ public class MainActivity extends AppCompatActivity { .create() .show(); } - private void refreshLocation(Location location) { - Double longitude = location.getLongitude(); - Double latitude = location.getLatitude(); - Double altitude = location.getAltitude(); - StringBuilder sb = new StringBuilder(); - sb.append("Longitude:").append(longitude).append("\n"); - sb.append("Latitude:").append(latitude).append("\n"); - sb.append("Altitude:").append(altitude); - Intent intent = new Intent(MainActivity.this,MapsActivity.class); - startActivity(intent); - - } @Override protected void onPause() { @@ -159,4 +141,32 @@ public class MainActivity extends AppCompatActivity { protected void onResume() { super.onResume(); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.mainmenu, menu); + return true; + } + @Override + public boolean onOptionsItemSelected(MenuItem item) + { + switch (item.getItemId()) + { + case R.id.settings: + //your code here + Intent tempSettings= new Intent(this,Settings.class); + startActivity(tempSettings); + finish(); + return true; + case R.id.contacts: + backCount=0; + Intent i=new Intent(this,ContactSelection.class); + startActivity(i); + finish(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } } diff --git a/app/src/main/java/com/speedyapps/keepyousafe/MapsActivity.java b/app/src/main/java/com/speedyapps/keepyousafe/MapsActivity.java index 2e7aa61..d79a3b4 100644 --- a/app/src/main/java/com/speedyapps/keepyousafe/MapsActivity.java +++ b/app/src/main/java/com/speedyapps/keepyousafe/MapsActivity.java @@ -5,35 +5,33 @@ import android.content.SharedPreferences; import android.os.Handler; import android.support.v4.app.FragmentActivity; import android.os.Bundle; +import android.support.v7.widget.Toolbar; import android.widget.Toast; -import com.google.android.gms.maps.CameraUpdate; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; -import com.google.android.gms.maps.model.CircleOptions; import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MapStyleOptions; import com.google.android.gms.maps.model.MarkerOptions; public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { private GoogleMap mMap; - SharedPreferences sp; + SharedPreferences sp,settings; Double latitude,longitude; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); - - sp=getSharedPreferences("locationinfo",MODE_PRIVATE); // Obtain the SupportMapFragment and get notified when the map is ready to be used. - SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() - .findFragmentById(R.id.map); + SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapText); mapFragment.getMapAsync(this); + sp=getSharedPreferences("locationinfo",MODE_PRIVATE); + settings=getSharedPreferences("settings",MODE_PRIVATE); final Handler handler = new Handler(); - Runnable run = new Runnable() { @Override public void run() { @@ -47,23 +45,6 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback handler.post(run); } - @Override - protected void onStart() { - super.onStart(); - sp.edit().putString("status","running").commit(); - } - - @Override - protected void onStop() { - super.onStop(); - sp.edit().putString("status","stopped").commit(); - } - - @Override - protected void onPause() { - super.onPause(); - sp.edit().putString("status","paused").commit(); - } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; @@ -76,9 +57,28 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback Toast.makeText(this, ""+latitude+longitude, Toast.LENGTH_SHORT).show(); if(latitude!=0.00) { LatLng currentLocation = new LatLng(latitude,longitude); + Toast.makeText(this, ""+settings.getString("maptype","null"), Toast.LENGTH_SHORT).show(); + switch (settings.getString("maptype","null")){ + case "NORMAL": + mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); + break; + case "HYBRID": + mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); + break; + case "SATELITE": + mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); + break; + case "TERRAIN": + mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); + break; + default: + mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); + } + mMap.addMarker(new MarkerOptions().position(currentLocation).title("Last known Location !")); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude,longitude),18)); mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude,longitude),18)); + } } @@ -87,4 +87,6 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback Intent main = new Intent(MapsActivity.this,MainActivity.class); startActivity(main); } + + } diff --git a/app/src/main/java/com/speedyapps/keepyousafe/Settings.java b/app/src/main/java/com/speedyapps/keepyousafe/Settings.java new file mode 100644 index 0000000..4e83ed2 --- /dev/null +++ b/app/src/main/java/com/speedyapps/keepyousafe/Settings.java @@ -0,0 +1,91 @@ +package com.speedyapps.keepyousafe; + +import android.app.ActivityManager; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.support.v7.widget.SwitchCompat; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.Switch; +import android.widget.Toast; + +import java.util.ArrayList; + +public class Settings extends AppCompatActivity { + String value; + ArrayList<String> arrayList; + ArrayAdapter<String> arrayAdapter; + Switch sw; + SharedPreferences sp; + Runnable runnable; + String spinnerString; + EditText et; + Spinner spinner; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_settings); + spinner=(Spinner)findViewById(R.id.spinner); + arrayList=new ArrayList<>(); + arrayList.add("NORMAL"); + arrayList.add("SATELITE"); + arrayList.add("TERRAIN"); + arrayList.add("HYBRID"); + arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,arrayList); + spinner.setAdapter(arrayAdapter); + sp=getSharedPreferences("settings",MODE_PRIVATE); + sw=(Switch)findViewById(R.id.switch1); + et = (EditText)findViewById(R.id.editText2); + sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if(isChecked){ + sp.edit().putString("alarm","on").commit(); + } + else + sp.edit().putString("alarm","off").commit(); + } + + }); + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + public void onItemSelected( + AdapterView<?> adapterView, View view, + int i, long l) { + spinnerString= spinner.getItemAtPosition(i).toString(); + sp.edit().putString("maptype",spinnerString).commit(); + } + + public void onNothingSelected( + AdapterView<?> adapterView) { + + } + }); + + } + + public void changePIN(View view){ + Intent intent = new Intent(Settings.this,changePassword.class); + startActivity(intent); + } + + @Override + public void onBackPressed() { + if(!et.getText().toString().isEmpty()){ + sp.edit().putString("timer",et.getText().toString()).commit(); + } + Intent main = new Intent(Settings.this,MainActivity.class); + startActivity(main); + finish(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/speedyapps/keepyousafe/Welcome_Activity.java b/app/src/main/java/com/speedyapps/keepyousafe/Welcome_Activity.java new file mode 100644 index 0000000..693bb04 --- /dev/null +++ b/app/src/main/java/com/speedyapps/keepyousafe/Welcome_Activity.java @@ -0,0 +1,196 @@ +package com.speedyapps.keepyousafe; + +import android.app.Activity; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.Window; +import android.content.Context; +import android.content.Intent; +import android.graphics.Color; +import android.os.Build; +import android.os.Bundle; +import android.support.v4.view.PagerAdapter; +import android.support.v4.view.ViewPager; +import android.support.v7.app.AppCompatActivity; +import android.text.Html; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.TextView; + + +public class Welcome_Activity extends Activity { + + private ViewPager viewPager; + private MyViewPagerAdapter myViewPagerAdapter; + private LinearLayout dotsLayout; + private TextView[] dots; + private int[] layouts; + private Button btnSkip, btnNext; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.requestWindowFeature(Window.FEATURE_NO_TITLE); + if (Build.VERSION.SDK_INT >= 21) { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } + setContentView(R.layout.activity_welcome_); + + viewPager = (ViewPager) findViewById(R.id.view_pager); + dotsLayout = (LinearLayout) findViewById(R.id.layoutDots); + btnSkip = (Button) findViewById(R.id.btn_skip); + btnNext = (Button) findViewById(R.id.btn_next); + + + // layouts of all welcome sliders + // add few more layouts if you want + layouts = new int[]{ + R.layout.welcome_side1, + R.layout.welcome_side2, + R.layout.welcome_side3, + R.layout.welcome_side4}; + + // adding bottom dots + addBottomDots(0); + + // making notification bar transparent + changeStatusBarColor(); + + myViewPagerAdapter = new MyViewPagerAdapter(); + viewPager.setAdapter(myViewPagerAdapter); + viewPager.addOnPageChangeListener(viewPagerPageChangeListener); + + btnSkip.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + launchHomeScreen(); + } + }); + + btnNext.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // checking for last page + // if last page home screen will be launched + int current = getItem(+1); + if (current < layouts.length) { + // move to next screen + viewPager.setCurrentItem(current); + } else { + launchHomeScreen(); + } + } + }); + } + + private void addBottomDots(int currentPage) { + dots = new TextView[layouts.length]; + + int[] colorsActive = getResources().getIntArray(R.array.array_dot_active); + int[] colorsInactive = getResources().getIntArray(R.array.array_dot_inactive); + + dotsLayout.removeAllViews(); + for (int i = 0; i < dots.length; i++) { + dots[i] = new TextView(this); + dots[i].setText(Html.fromHtml("•")); + dots[i].setTextSize(35); + dots[i].setTextColor(colorsInactive[currentPage]); + dotsLayout.addView(dots[i]); + } + + if (dots.length > 0) + dots[currentPage].setTextColor(colorsActive[currentPage]); + } + + private int getItem(int i) { + return viewPager.getCurrentItem() + i; + } + + private void launchHomeScreen() { + //set pref as not first + startActivity(new Intent(Welcome_Activity.this, MainActivity.class)); + finish(); + } + + // viewpager change listener + ViewPager.OnPageChangeListener viewPagerPageChangeListener = new ViewPager.OnPageChangeListener() { + + @Override + public void onPageSelected(int position) { + addBottomDots(position); + + // changing the next button text 'NEXT' / 'GOT IT' + if (position == layouts.length - 1) { + // last page. make button text to GOT IT + btnNext.setText(getString(R.string.start)); + btnSkip.setVisibility(View.GONE); + } else { + // still pages are left + btnNext.setText(getString(R.string.next)); + btnSkip.setVisibility(View.VISIBLE); + } + } + + @Override + public void onPageScrolled(int arg0, float arg1, int arg2) { + + } + + @Override + public void onPageScrollStateChanged(int arg0) { + + } + }; + + /** + * Making notification bar transparent + */ + private void changeStatusBarColor() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + Window window = getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.setStatusBarColor(Color.TRANSPARENT); + } + } + + /** + * View pager adapter + */ + public class MyViewPagerAdapter extends PagerAdapter { + private LayoutInflater layoutInflater; + + public MyViewPagerAdapter() { + } + + @Override + public Object instantiateItem(ViewGroup container, int position) { + layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + + View view = layoutInflater.inflate(layouts[position], container, false); + container.addView(view); + + return view; + } + + @Override + public int getCount() { + return layouts.length; + } + + @Override + public boolean isViewFromObject(View view, Object obj) { + return view == obj; + } + + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + View view = (View) object; + container.removeView(view); + } + } +} diff --git a/app/src/main/java/com/speedyapps/keepyousafe/alarmService.java b/app/src/main/java/com/speedyapps/keepyousafe/alarmService.java index 1df06dd..d07d77b 100644 --- a/app/src/main/java/com/speedyapps/keepyousafe/alarmService.java +++ b/app/src/main/java/com/speedyapps/keepyousafe/alarmService.java @@ -8,6 +8,7 @@ import android.os.Handler; import android.os.IBinder; import android.provider.MediaStore; import android.widget.MediaController; +import android.widget.Toast; public class alarmService extends Service { MediaPlayer mediaPlayer; @@ -21,7 +22,6 @@ public class alarmService extends Service { @Override public void onCreate() { - super.onCreate(); mediaPlayer = MediaPlayer.create(this,R.raw.danger); forceFullVolume(); diff --git a/app/src/main/java/com/speedyapps/keepyousafe/changePassword.java b/app/src/main/java/com/speedyapps/keepyousafe/changePassword.java new file mode 100644 index 0000000..1a94945 --- /dev/null +++ b/app/src/main/java/com/speedyapps/keepyousafe/changePassword.java @@ -0,0 +1,46 @@ +package com.speedyapps.keepyousafe; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +public class changePassword extends AppCompatActivity { + + SharedPreferences sp; + EditText oldP,newP,confirmP; + TextView tv; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_change_password); + oldP=(EditText)findViewById(R.id.editText5); + newP=(EditText)findViewById(R.id.editText6); + confirmP=(EditText)findViewById(R.id.editText7); + tv=(TextView)findViewById(R.id.textView15); + sp=getSharedPreferences("settings",MODE_PRIVATE); + } + public void onPINClick(View view){ + if(oldP.getText().toString().equals(sp.getString("PIN","null"))){ + if(newP.getText().toString().equals(confirmP.getText().toString())){ + Toast.makeText(this, "Successfully Changed PIN", Toast.LENGTH_SHORT).show(); + sp.edit().putString("PIN", newP.getText().toString()).commit() ; + Intent intent = new Intent(changePassword.this,Settings.class); + startActivity(intent); + finish(); + } + else + { + tv.setText("Entered new Passwords Don't Match!"); + } + + } + else{ + tv.setText("Old Password Wrong!"); + } + } +} diff --git a/app/src/main/java/com/speedyapps/keepyousafe/confirmationScreen.java b/app/src/main/java/com/speedyapps/keepyousafe/confirmationScreen.java index 7e8a4cb..7520d8f 100644 --- a/app/src/main/java/com/speedyapps/keepyousafe/confirmationScreen.java +++ b/app/src/main/java/com/speedyapps/keepyousafe/confirmationScreen.java @@ -42,8 +42,9 @@ public class confirmationScreen extends AppCompatActivity implements LocationLis EditText editText; Double latitude = null, longitude = null,newlat=null,newlong=null; Handler timehandler; - SharedPreferences sharedpreferences, sp, shared; + SharedPreferences sharedpreferences, sp, shared,settings; String n; + Intent alarmIntent; String n1; LocationProvider provider; int count, i; @@ -56,70 +57,17 @@ public class confirmationScreen extends AppCompatActivity implements LocationLis protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_confirmation_screen); - locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); - boolean enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); - if (!enabled) { - Toast.makeText(this, "Please Enable GPS to use KeepMeSafe", Toast.LENGTH_SHORT).show(); - Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); - startActivity(intent); - } - provider = locationManager.getProvider(LocationManager.GPS_PROVIDER); - Toast.makeText(this, "Provider"+provider, Toast.LENGTH_SHORT).show(); - handler = new Handler(); - handler2 = new Handler(); - timehandler = new Handler(); - //alarmIntent = new Intent(confirmationScreen.this, alarmService.class); - textView = (TextView) findViewById(R.id.countDown); - editText = (EditText) findViewById(R.id.editTextPIN); - sharedpreferences = getSharedPreferences(file1, Context.MODE_PRIVATE); - sp = getSharedPreferences(file2, Context.MODE_PRIVATE); - shared = getSharedPreferences(file3, Context.MODE_PRIVATE); - i = 10; - run = new Runnable() { - @Override - public void run() { - textView.setText("" + i); - if ((i) == 0) { - Toast.makeText(confirmationScreen.this, "distress called", Toast.LENGTH_SHORT).show(); - distressCall(); - handler.removeCallbacks(this); - } else{ - i--; - if(i<=0) - i=0; - handler.postDelayed(this, 1000); - } - } - }; - handler.post(run); - run2 = new Runnable() { - @Override - public void run() { - if (editText.getText().toString().equals("2020")) { - //stopService(alarmIntent); - handler.removeCallbacks(run); - handler2.removeCallbacks(this); - timehandler.removeCallbacks(run3); - Toast.makeText(confirmationScreen.this, "Distress Calls Cancelled!", Toast.LENGTH_SHORT).show(); - Intent main = new Intent(confirmationScreen.this, MainActivity.class); - startActivity(main); - finish(); - } else - handler2.postDelayed(this, 1000); - - } - }; - handler2.post(run2); } public void distressCall() { - // startService(alarmIntent); + if(settings.getString("alarm","on").equals("on")) { + startService(alarmIntent); + } if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } Location location = getLastKnownLocation(); - Toast.makeText(this, "Initial Location var : "+location.getLatitude()+location.getLongitude(), Toast.LENGTH_SHORT).show(); if(location!=null){ latitude=location.getLatitude(); longitude=location.getLongitude(); @@ -300,7 +248,76 @@ public class confirmationScreen extends AppCompatActivity implements LocationLis return bestLocation; } - public void requestLocationChange(){ + @Override + protected void onPause() { + super.onPause(); + } + + @Override + protected void onResume() { + super.onResume(); + func(); + } + + public void func(){ + locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + boolean enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); + settings=getSharedPreferences("settings",MODE_PRIVATE); + if (!enabled) { + Toast.makeText(this, "Please Enable GPS to use KeepMeSafe", Toast.LENGTH_SHORT).show(); + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(intent); + } + else { + provider = locationManager.getProvider(LocationManager.GPS_PROVIDER); + Toast.makeText(this, "Provider" + provider, Toast.LENGTH_SHORT).show(); + handler = new Handler(); + handler2 = new Handler(); + timehandler = new Handler(); + alarmIntent = new Intent(confirmationScreen.this, alarmService.class); + textView = (TextView) findViewById(R.id.countDown); + editText = (EditText) findViewById(R.id.editTextPIN); + sharedpreferences = getSharedPreferences(file1, Context.MODE_PRIVATE); + sp = getSharedPreferences(file2, Context.MODE_PRIVATE); + shared = getSharedPreferences(file3, Context.MODE_PRIVATE); + i = Integer.parseInt(settings.getString("timer", "10")); + run = new Runnable() { + @Override + public void run() { + textView.setText("" + i); + if ((i) == 0) { + distressCall(); + handler.removeCallbacks(this); + } else { + i--; + if (i <= 0) + i = 0; + handler.postDelayed(this, 1000); + } + } + }; + handler.post(run); + run2 = new Runnable() { + @Override + public void run() { + if (editText.getText().toString().equals(settings.getString("PIN", "2123789564237572345278356834"))) { + stopService(alarmIntent); + handler.removeCallbacks(run); + handler2.removeCallbacks(this); + timehandler.removeCallbacks(run3); + Toast.makeText(confirmationScreen.this, "Distress Calls Cancelled!", Toast.LENGTH_SHORT).show(); + Intent main = new Intent(confirmationScreen.this, MainActivity.class); + startActivity(main); + finish(); + } else + handler2.postDelayed(this, 1000); + + + } + }; + handler2.post(run2); + } + } diff --git a/app/src/main/res/drawable-hdpi/contacts.png b/app/src/main/res/drawable-hdpi/contacts.png new file mode 100644 index 0000000000000000000000000000000000000000..24145736dcd42e33eb7defeb163ed0796fa58eed GIT binary patch literal 580 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<Y|+@3CuAr-gYM#Xv`HW11E z%O?2c;Q8mC@~1YH%7+y2Gk-iO9{9{&;?+ITJIy@t=5zgA|8AehEZNhTdwr|7k+cQR zEuEd}J1uwaT$#!`B}Q+1l-AUH+EY*Ub4@w@lyO7OQC&$!S&jvb>5~E&zucYO#n9y| zq?MR@^h45R_RuCXpPa1%N$gq$y{%uAraGu<DEXfMyiHj$er?$Ij2&7pc_v(uV>g?^ zpmpy>+8+UlJ826(eyytYJbqDrW^3N!ixE6`b_9HMPG(}hUK$>x-Vpi6EuH_zUZoFf z&ZfHwIH<2T2<tgHzqefO-rh`KhrXJB>%Vy>&6+ubwek0a-ge`Q*KW4z9Zrc_*V*F` zrB@>U%qc{Dt$5+WfC6T>_>8?Bs=p?+*qVK+^jc#mEqS*yyJ>-y<mQQIT{R5NSuQ+O z|B%YUc+Aqq`@xfvARRIOM&Fj_*)D6tZac}cTe!{*yAu<v#d6_=GLO|Pm3rmhmdEPn zO%a^Xcw3U+vCx?96GN$B=t3dYhGXX@d)0dEoGZ(y=X1Q!Y?9J}uR^I}lT-xm1oX({ zDE<AX&E(WkYBr7KMW3;%f~dwto)|GNiAgtJv8ruL$=bM7n^A3!vnb=nGmQMIyCnV3 zf2gfDpR^`X?AueHFQIq)c^#z_PUogPcIW=<`&Bk_`Q^wH?`HPsN!^*~E57)|>9o-A k$#>rbH}^Q4VyR=~i8!!e*7U%i3=9kmp00i_>zopr0OdjSNdN!< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_action_alarm.png b/app/src/main/res/drawable-hdpi/ic_action_alarm.png new file mode 100644 index 0000000000000000000000000000000000000000..c38036fa37beab3e50d16c122aae60a08ae05953 GIT binary patch literal 600 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<Y|@}4e^Ar-gYM&9;1>>$wl zU3#C#$6rw|oE1$yojLb~u;%|r$<_VE7+2>I&|=pa6zy95H~PE-SE7fKTH5TRvKC7` zPrS3Vw!VBf(l>aSPvj)ChfaE%b+V6bdn>gr-(hovPS~lZpSGAVIqcx$kvy0B=>WU9 z!@UV7nVs#I*d>(4#+&+nHt=BBQ^1fCBz}YAMybGV)?bcKY?Xc;@Ld@a<$b#3CZm<T z;PZy%`*;o)9P|Ch;=-o5_^xtGhs1>`(%h9jafS_ll;^#F_%}^&dbFAdSF7%w_s(Y~ z&*zBYUHGI^<iwU68Rd<4v$k4^ev#c<-1_Clc3+hS)kG$PEO8qH!4tRl|G4+*W1K5T zr4Hw_i#M%jv!x3fh4=D0Y0o};uG3?tneu(LK*4`&#eX_Hn5micE5?v<tAux-w^{Ei zB^Db4#;P8Z90UG4-4QEH_iA1!oHJD-H+9d!p5NkvOuOa<zIHg^bY+`HY1Qq+@BJ5Q z`@WiBrXP5F(HduOu7%oRst%k1Oj8(C9XKb1F<4pqMlrnW7h3sKpmJZg662P6C!c@b z9Ow`oEYHZCW8MFMOW70mx+^nZx1Qiw6}CfZlJb0$JCnTkynJHr?y8j6)625u?y1=Y z7u@WpF>t8}8TxUoztNgHcgNzHJ4~f|J$-gwpRnfhnx%iw@Tk0ZV)`8Az1#5sn|?$u zS3(KHqLT?BGu8YBGMQvEE+}@W&AxbXRmkzxr~WOjW$rN5<-NS8*PVfZfx*+&&t;uc GLK6V(3jb#S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_action_countdown.png b/app/src/main/res/drawable-hdpi/ic_action_countdown.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e98a05c5d854a67173f6aa3dd34fab6c4bd520 GIT binary patch literal 952 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<ae^`0({Ar-gYMn+}_JBsAR zbT254mlN4~Fu-~9`bl0~Ua@jZm9}jQeADbL`gT!R^G3U6TGz6^-v3o=(U>^n&YhXo z=F3!=+wa}8KK=9A9LwitrY~IR`1|^%n{VQTU%E2PR=ZTpP_*-oys#vL1jCE=YZ)eG zzW)C2?+Km~<7!Qw>66CvNkDH?o5$sr8u3jB%YTF=&-Yqdv_yT%vv<obzmyS)X-nGw z_m}<eq%%S)&e|(KKdKh{oA=OAXx68Q6rN8PzkFE5Bp{!#*L%~a4Ev+st<O0cbSF)e zoGkmDF-iLK-J`{hLHkly-aa>_|7a4s;ltf!UL4`G9`!8?T6y?mMU8yx`I`1RbH&wf zUJKvQ_qf>k>1fhN0kzy0Vh1f}9R4267G`sp`7NtUPKWf<o!v9utWBHfzclFOp0|5` z*8Ed?_G1k*!|K?=%7k>&Q~GX;FaC{N5dA2$Hf;6P#G3k*jD_brKNa+!e${yN|M?9c z=9MLL@OafuTy=h#I7eX8{s8B-GIQ5F-gE4|^c~ang)9wq(UZ2CWp?sCf5eay%e!%x zO`?!d_pIj9b(bxq8I)$n2k@Isp1by+;Ecjh!`Ex(H*RA%Qn^}_VcMEWkxCOSG~ct$ z|EZV5z_anyuBSymSNPV(ht~X`dVixM1IOw0C$g3A#BKff|M)4D>$_MQ@=BZw@6O_F z*!8G;@m(f`Q+zjnWt-`J@$IxzzRPsrchj8eiuoHh9@v(0NPce8es6{|oS!P}zRNRQ zZH?%i#lY}lJ&WH$ZkCdTX%C#woVuvODb%9V_WkvPb_weZ3DRz|A^U^58r;pqW^D0I zVT@*(y>-o#M$Xx%k7XX^ul#H!xb0g^xUOo>_1+cR4gS>c=N5T7XVY)(YiC&4re7(N zvMw>xd0J^3dOCB>^zHK|Y}Y%hx;RfNv}T>@nz(r<tXY?-E&Q<Kncbfws?SgM9@=x> zl;_?IZKLcs=0_{Jy*s@BE^_-RdHq@Kdd9%-#Yew<s+6_${B&mL>`Aeg3oVu~?Tk)Y z&Z|=;lPqsw@_L8b<V{DfOm#aUvL*S_j5jkjMwU%z%b6<JG)d;@_t!su?~+}AYHs@d zfX7=t-2CbHWZjQ*T}7w;<AvA~UCh_3nBVIYGf7!?ee%f^n=AL3_H^j0S<kws|5)el zhkFysxm;o_?c|p@t3CYBtz?yZ!rrj6T!m|un$NfT>@9xXH|`qRf8mX?-?qQo;^JT5 T$0d9W3=9mOu6{1-oD!M<d{xXg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_action_map.png b/app/src/main/res/drawable-hdpi/ic_action_map.png new file mode 100644 index 0000000000000000000000000000000000000000..16aee1597d8b7d0ebe4081d0c09b51edbb27c1c6 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<ZzKRjI=Ln>~)oq5xnDNy9t z)>_7etWj}F6BJrjN~SwX9cs^5D%Z8JU9L*AX<EC-iZclUTwa^*e%b%lI>8{uXRlSH z^Ya78MfZN6{n^^M{6Mj@A|D@L-vYNA20ekX*TWxw{9!t!QOx(U%%{V5w!LKx4Gn)V zv-Mof>06uD2&(uVlk~mZ^&{pJ*Zq11o!0L2$$2ivtY`X^CA`(C>3i_`-Pc^L%o)7O zH&r!!IlDZ=FG`p6n2Jq$y)sOsBHyX}ex+#%_sfY5dfK5;A!{vv{1v@=_qei|aQD$& z9317EjQ>My|MiC0st3Llnl$skj@HucTc0JJV?O3CS)a)uS^S<==6I(2)a3zJWi|9) ze}2vIXc<dOQ`dXP^Nq|O+>|E1SbElH_O3lUn^_h1lqxl{WwhEe8!(`v1OFKVM3&lL zVEA$P-=fT0jBdJ8y=Clt4lfQpW!%(Vc&qg8wgZeD<!bB`axa^x?=`6BV(_$^_-e-V zqdOL^dbLC4z~6obg@wgE#aFgynP->Qlxu7|mMVQvE;jL<(I56&<^}FdMGH1+^**#a zaqLfU4{PV%;3bEJtZporRvnzq<aCL3#=HyCY_F!|UY2g#*ib4yRqOv$lPzI-UN@#s zmYA`8p|sJrmp3$gLRIa5>{4l1d%5m|ZYC&#rX5#b>uoh_J-?|b0|Nttr>mdKI;Vst E0Ae!oNdN!< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_action_name.png b/app/src/main/res/drawable-hdpi/ic_action_name.png new file mode 100644 index 0000000000000000000000000000000000000000..6589eee0932d7ec195c8d02c6020afb78a49c8c2 GIT binary patch literal 608 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<Y|>Ygr+Ar-gYMtNr+auC>- zpM5)de)_@Y1YaMXoj>`xSnC^>UOK+?%Z*Ei7Ja><p0)bl?Q`tfI?=tyY|3<Z8%Rv* z{atHpZEU@GW{+fJa_i}$o~X6k;#P*_952-Kn2~#1UZC#o0{_)<>(^&;%01wynQiCp z=u{kaHS24L^n;#_p_krSo-7diu`wZUXN=w9-KRJi{)qV2U*0Uvu}=LgBj?fw8}Fx{ zEj|!uH~+p+jdFJ6H2?F~n^dRds$1wB@QT{6eA2gid5G5A3wx?>s!y>n%e*qNVN3G? zZxyRcWt&2B=6egacq_A1#^3Vd6=gXx;ikS=_iV*&@nJ<d)2d#mFvJHkbo^^hnVxmb zt!1HW^`U?D5eJ(55B-jv#OwUvzOcidw#{N(t+o>xPAb1^7i9XQBjiwV^sh@%)AP#q zEf+*}zZ~0ob!yRpgqr#|L1T+`t?BDUCeC(wp<wpmkB5y{@B*Dv;=c=z{GPq#AosLP zx4!RRT<5RinDFVI@>6!pTN(-ix>k}*Z4HV7y$nJjGm_$^nKXn0^*=v8sJF^|=btOn z7})<W-@-C+gGxx`fmz%8uJtk4U-8v_vs1LqO8Cdjt6>*sF{rEvJSx5a)^CQ-we{6Z zKV)QTB0n)St6IE}c^|WVn%>01`4Tf0w<soXNHBGqZwe9ny3wT8lX?3pjs-Kt+~Z$F zw2ChHdt+B|36EW)YDN3H`AZUbqh8-Cy}Q_@?nZO6x@N@TKhB4HM2_n-u-{~S-mM|V Qz`(%Z>FVdQ&MBb@0ARfhaR2}S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/settings.png b/app/src/main/res/drawable-hdpi/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..089ccef444608b58a88334e97892dd3faca543df GIT binary patch literal 836 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<ae+@3CuAr-gYMn+}_JBqB^ zeT=nMbZvCjl_@jM>P%{H;MUV@bc*ZJn0CcU{>Y_E;m)jUdqY=mJy!qv`$3L}m;BDn zv_8i8{=ma+C(q9LYn^`1$45mw^5L4e_2mY$&&q8Tyw4f-BWUForeA4`lQ#ZfTQASy z*O;}nitP~Zsi&Xxr5!ux?~HkuQo!Y~A$xJlf9I`HZ;J}JM7Uaag)~}69Mohucq@qY z!P@1?{uct@A6UU1#5zG+zxKnFwqv>xIm|uJKmYs_BH}n>f<Ok_`y6eX52E`sAI|LJ z>V0qgV-NSQ1N$GVJrlg}Yr<2u1=|B&$*~?6mY;6EwCTO$>>K+#eid-Z?dktteb~b- z?rhrU0vT4hs5L*7+a5gHo1vrrP*5*@<3aIwr(HsOK3GmZIj78V>hu3mKNR`TW(t3w zv}9FZAY<5j?pgEFu1@~VF2}o3=hZ^3si)q~xOU4(z|wPxQHE>(IfHqRC791=a(=o~ z;3{Dd*^^YA@?Iq4WMHRkaJvhK32UOAmZXl?s^y#)RhNdF-_Ti=C~`D4^u&YUy>a#n zSLkcHTIg;LEnmet*YCN&j8c})A1=Gii=7x4Hpf*h3cM!d9K*88y<+S8wbENF8zk0p z&i4?``26PF4v`zKhfD8lXL50x&lTa!@vz|D!oWFyUMn79NmAmR^kZXlU{uqgt7U#k zPU4C_9E)pxC1y5lQ@!(h>n>^5fAOa3O1>LkdT~o?Z!3EL{gEeI)xy^<49D$OWPfJ4 z*d=;<qwi0>RmUoJ3T&SF+E{(YjgU5{&3+qhY)m@-Ca3t)k=V~yj=$gJS8*%b)n<~5 zL@ei9hvq$dRvdjPzEFc9*)I5S#^Q?>$A9{Av{yaPn{qOvc=dUKjWz!j-X*+_ZMkXn z+*L<!gP(8Igm2C|d{t*N{sm4EXOG>;7JZES@|*>Y2em~e&%T(HDl+rw(^jVsxiT|u zU94t$cQ$aD<*aWf^K%Zz8pH-f)W;Rgkb2EBTP##1O?$_0Mva2-hmBrEN2kPmdOPuj zK*8CPO}~YzXDxW&b@}BNLupp+noa+%f0gD~H}z)Pm6!$w1_lOCS3j3^P6<r_IqZkp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/contacts.png b/app/src/main/res/drawable-mdpi/contacts.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c7d60cb14aeea09872dd69506c730170046a63 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfKAtX)Ar-fh6Am!>`1o9E ztWY!ExN&147xTsh1B(NquQ*mEIy*b3w*@+IFg)%&ed5Fkc9Hlk2NX8z>grl<jFOX* zI>i$b;{5hVdtYPUimZ%`ghK@lt*xzUYjxWbjg5^>dDv$#G47RN;K@|(l3_4O(9(#0 z`SN99c6Rn>hON6Aj=XrrkYHn#c=5f{d4UH`*ZH|PcUdw-hcUUb+d3Z*jJ4PBy>OP% z!G`q-M}UU|x4!x=wL^^O+n8T5EO-`|Fkv~<Ms|Vd1_OhCwvM5C6Yjcuvzst%RJ>Ls zv(k>y>KIFgqj9J#!<B%AixwU7%US#C!Gi;gSHfLQ*&CW>URibbz<~o@vlJ6tRxx{+ z^*cy$FlH*TGWT*zN8J>VIA4-IfnlT7I<-hy*_!xfV{PYbllp{=C4sx+8B8zpM~B*R qNo=_K*5rk-1@Fppns;Rw7z*~WZ0B}lS7%^gVDNPHb6Mw<&;$S@UyP#w literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_action_alarm.png b/app/src/main/res/drawable-mdpi/ic_action_alarm.png new file mode 100644 index 0000000000000000000000000000000000000000..a868d8ecc1a8c81c46788da732968c4e1e5c868b GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNf1)eUBAr-fh6C_xjMI|I8 zI3y$`TbT=IY}{yQe^-`a%a%(=j-;q@Fv|wIm9sPG&TV|sAX&2c#-T$_j2W3KXNpv0 zGBYwX{EfS}Zrysb!Oqv^o23=oNyf!$avhN?vvxK&Gjm^PGBP=B)hPC~*<ix`R-N>$ ztSF{S&S!t{Id8jh=8TWL#+i;KErJ^993?*HKC%;Jz1CjQV>)tq;k56Jk0V8<M->+r z7cSUUw}N>YqpX$>@BQD0YFM}2>EmFxR%&fBH<bzCGA-aT?DTeZZIxY-r*(z#=#>Ho z`74a6DlXBiR~YYJ@nGKY!(ZLeUra|f;0?o)A3lnX{#HKsS1`ND8f=keSQ9cuqm*IA zFSXl63ziB`%-U(BaKFPNrf<pm`6=!R8|MW1%u=4vJRxev6b%;9rKgsKuqha?yyn1o z?Q_?QkA7uI%EsBhk~8^#T{z2FRaJGzA^y7J(R^Nk;)`431*D`-@qF2;X7Iw)@y*43 dN;?@CQhzYkGVcD|!@$76;OXk;vd$@?2>@ZOq|5*S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_action_countdown.png b/app/src/main/res/drawable-mdpi/ic_action_countdown.png new file mode 100644 index 0000000000000000000000000000000000000000..47fa59d0705d78927534a2bf620124a1980a6c0b GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANM!$(}BbAr-gYhDUo#JBsvO z+wGwp*1dFJMwVRD&YZk9wlk9zboc3gSvn=E+k8*Z#;F0#VF7y<1%0{ytG2+cO?9{R z>>P(~=JqpZ=AAY#J~yXWsMBWa#FHt{_O5uzu<7QTx#EBSGsrpf>^bIX|KR#Io!8RO zisuyT&p*#^a<)Kky7$2gee<~)vZSX36m_~JalB?d@$E{g#Z<4oO-;P^hyA>kUtT?- zmj7n*I>ra(CQ@&Cs$L0l%*$B5`)HM9NJFFJpKX&Xyxu+h%~ctbm$o!UZ@Z+lz6e+T zf-gRr4>%KE%;n7Z@cz{?#ob~jEM_WxaSt|1zx|DS?(z_=ug%AmF8Z22d2Y%ex_r;` z17FX**taHZ^;%QES(kYt&b^;<F`3=wvfD994FMbRgWVB2*Pa($oyYLx<UW>IuJe+Q zkBT$&_-8eKK6&{1J_eQIb6R$%Bt)e}KYl4*%%D<edt?%4Lv3Ky1L3!B3{S-PTDNBf z<>a}%%!*+6P#gPWolla3>ZDcyMjg)k_QK*ZU5|X__Zc>+FrHq)e`CH-_;WS$4cZz0 z8*?}p_HA8}&O3L%Ptt?U-*VifxAHv>JR7==vth=!oPF&K585vsf0a>{S{?OOdi8Y+ zsVRk`SJto}(_{VIQkLr;$9Xb0!0jv3k`yCJ{##YGSA#yquW4r%*}OgKlVa`4<=?Zz z&$~OsB)?bo%AG#jXJf>hw7&r-eew!Uui)4j>Q?5^_w12Z)t*dGx5{&l-7GI3#P%G2 zEX%t;SwnlX3Hu99{f1nvB{rWPOp>$ATpD&?U4NOA+^$6{|MOmu{^r%>IoaZQ+>^>H chVK|NgMI%`QuDdWz`(%Z>FVdQ&MBb@02RbAl>h($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_action_map.png b/app/src/main/res/drawable-mdpi/ic_action_map.png new file mode 100644 index 0000000000000000000000000000000000000000..b61c5e091e444bea9a1e659a9ce0d757cf2ca32c GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNf&YmugAr-gYPPg?w93ase z{U(a#V3(4GXAI9z6*j>jS(n=@1;h{5D?AF&@~|%mU^#m6SAK2W3jyb(b&HNYtbKUl z*|&Ms^QJiYN%P9eHg_({IQ#vt+^hu~pI06)lvzKcVzNr+!;dl7_dfZ0&*I9qw|vWl zIeD5M=;|vx%Q*4-$fh-A_xkf?m%h+^y_)CPh1AEnfh#)BzvsFZ_mq$E*5j)AuLEc9 z7g}&;hHb+J-JRA<@~gl7=W<A!)$nFRU1QuUh94i2xes4h$@^gWAFc%qAoSrsW5utx z%QAO`NFQK&G*hqOoyECrHk1C#D6oHKIMcwjJ@V;vsqeWAO?eg%9JIuDO_K@}F!*~! zKlR%OZ-!5y!A9p+BuKN~Eu8svG3$*zDj`uN{!v>CrKinnf7x}IInz>2?%O({imo)J kb1%HLui2YeseR@P^?MQ*DJ}n<fq{X+)78&qol`;+0A4JsBme*a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_action_name.png b/app/src/main/res/drawable-mdpi/ic_action_name.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9df4c0fca165fdd7d6cc5384cbde0d2965dfa1 GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNf$(}BbAr-fh6C}D0+_@8T z=fsH<caI!V5o_t~?Y--eWU~Fn!Gn#=8HGv$=NY1Gge9AgG*~b$X-k{NTpQJ$mMPDn z+|79P%7r6>4u>aC(9yea`SRq(lQU<{I>mI9d*Tz}6<L-S!Y6G=V2`|a;lhEIb!;kZ z#Vj7Wp_f@M1o+Q*&%?{Rv|wd(8;g$CofVQy9|N4LIaa!Q32(f@(^#^Cc~)mZj&w-w zsS9NcCV?xNd5xGJ6|Go!H^9#B4s&mlk-+^kXMA|07pXqs)(fa})6Y3^^gu~qYG&q1 zPp=8T15X#Jxc?A%%dp^)NtSiP5)(%6lEr)ySNIs73ME|3=1;L+aDCF30teFz4q;1j zPJ5jY3@K$Wn0_Pa;$wpad<|~wcNZ<-y74N}vAapC>Uon^fJcLYhHuX_=EJ8Mn->~= zlE3gu;>NS*Y`b>!b?sZvXj<fvCED87X2cx3Hq%RS!-fqPSY{qI;3{BX__53=wmnVc RCj$cmgQu&X%Q~loCIA#Zs_6g# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/settings.png b/app/src/main/res/drawable-mdpi/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..dc10961ea4e5e48e9f36fced9df238b9ba89e28d GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNf?>$`{Ln>~)4fpmw>>!X= zd#6_9eU_-d>RE4XOA$dA-KtlfD<l5$+8uEJko0=v)@}cy_w#=fxOO&evYBoNxATqT zXTGPVl^JP@{Bu9`(Bj;p*SkV(-ma*amtL4J#Zu<@AX-)7;Zr{bhx9_0oZERmhncra zF<lpC%ru+*nc)`C;R3x~aqF*(Z}=zV&QR@dBYbrs@2y2=P4X+Xc=lahJ1tfBVdu)r zoy`3cUKnULD?}{Ib9sJ)V@_AVD^Is}&jVaa&YAZfch69{=^JGb?0H7;7+1TSrI5tW zef!rbe@Mu9BYf%5&xWA2VbMuvUB2sG7VY-vC{~T!9<*{z;@{jm1|o$IH1u9>xE|i< z?s=rL$t+NVzcaCjw_JhQb>&{4OQH`a9AxkKTXw7K`)TeSZok>88nx0lO}W!4xPU#V zkvYR#l<CQVR!7;)l{O4_H*uCt>|EsSbfhTs^EXvrp*qL^4&CRplL~s{LRDBQG6EK@ zFZoz)vL>Upt=ZD?;oAqZ9-2Rjd)`=dZ>dCzxskby@Px7?v1?gdMQ_fH+@thbqQ1{n zL+X&nbXx__hcBJ&cp7%EXwwrG{al>bT&;erv>{j2d-<J78{a<Dy`XYq^PO3j*>aa= zoji78VwvK5$L;5~=(3-<=Tq<FB4;tr<cNOMzx`?Td4Cut-sC?f^Y)}C0|Nttr>mdK II;Vst06nGkp#T5? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/contacts.png b/app/src/main/res/drawable-xhdpi/contacts.png new file mode 100644 index 0000000000000000000000000000000000000000..65dfca234939a9fd85cde752439b2deda1be4d13 GIT binary patch literal 673 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$MGCW-zLn>~)o$c+-Y$$Mi z`y$&P4j-2^g>JayReCco`bJ!i<3)c3r7ub^7J40Qt`Im9bn(|A_A9IIU;BT6YiYvW zob9L6te6!=Z>oIuHk#=pbohe?tB2kE|JM{3uAC;gg@b`nfuT*>VPnJ`-3+B^sb?jW zl$4YlJ@ux~cE6?Ydy#X|Z7cDXN13;`tuKxIw@dg|eXD5V)%BmuE-hbos@x%Cv9Pb| zQ{$OuRP1Ul$Ns#}!k~X4{f==%j@j;`u0Q$S7hE=G5U@_+Sg^?G|LQvo4$GAp1y~t0 zel!1M{3L4Rvn<mu;go7-$E2faybN7-3*H=w|7z8@x#z$AMivL#{<ye5>+{5&X3H{s z`M1yM!_q^13^m=Vt*I6#`55+`-f{icNrR#-jLBSI`}x0$EKr^FnB&IhDEptBGJhMy z+zvLi?-E|O`N(-er=8_{6(-DgI4AUduS54T=9?@=JzK0U<bM)oyZCvNq!0s>1A~jM zoWsOt(Gh=&pDh2eyX_BCrEuGaZdry+Z#H}~<=S#7Y<rAe|F;ge<0rXUI%1b>Ryh1= zA+v)d?~~M}1trs$1g+F$YBzefm9ZiJzTqD4uT`}wD;8TynQD|Tm$z5cVd#&$6TAPB zmH+vPtPYJm0(@DQ16d0suVrqX&wRU)*<o>?v&}mDP8o)!T))@@L>ZVAsu*U4cuJh~ zzu;o#%;dnxaGYD{!pYyPoIgI@=E?7vGNmkW%gRKS2UGiQPg#GQ-^fAm(VgWpoUUE3 z>gK;5c%b*#DRY_Qk*}}6@7THAberCL);rrSrS{B-DG?JC<aBwVILYlj>oR6`h4*Z% h4GaPdGK_y1l9tT<F4EXDi-CcG!PC{xWt~$(698yYC2arz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_action_alarm.png b/app/src/main/res/drawable-xhdpi/ic_action_alarm.png new file mode 100644 index 0000000000000000000000000000000000000000..420d911fcc5a8b33642634d25b4abc63cc3b69d0 GIT binary patch literal 732 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$M7JIrlhE&{oJNve`bfCbo z$y#f_F}W@jI2ffmVcOIgxAmkqn#E<rzlwH__7K#seGx40A{fHMdqvDuS~Tka?K<Xc z&Tn(>N_;cAIkz$K^M;$Y_urp6v-63{R3Tvy;J%x+_11*k+xn-Te)^naR;?fSNPDUm z@1gUBdzFqqFIyQ>HIw7x(WH$<x_d4&KIl)4G~USGaL+D)u|O%&oRgvMHNye@$rJvE z=gCDs40&1lvtF6kt1a<PZ}3HF=f>YW`#%WXXM8BLkMsPOwI6Ei{vR+o+va|*x^cn# zx+7of_KWV~*>iPu0c%G-!>=X!M;2dSe&L1j{v+jQg#9M^39mUCzWS=*munl_C7L!f z256i7F0MIx^5-`8miett4-LIPeyyryVEPt&=!Z4Sl#Of>C6V$xOg){|^*em0%{u!` zw(n}4=k*M&w(XL)GETHy2)+CH!@9~c(fg|J??0SY!r$-f{DR$AWRAk!Hp|ez*JriW zy$$?h&rxw~+A=wvqFMLML?7L*6VX{C;BGp3g{|J<dpnl3-~0WeuTAZck<6ib$Ez0h z>Ut(~uQAN%mSL!>@-;2yX81Bu>6Da=l7s2DdaecM)@;7x5a=6q!8o6(W6O3f23<bQ z5Am&TU+42KxUny2E&q;pA4HfL5>`z+t;4urZL0yph8s@83``CT91M&K3@i-{0t`$F zjSMg5_+MdAvW|Cov{B}6rxe3msdm1DzBM-(oZ26#-n+TtMp@nK&u91EljLg2JL3Mb z(dmJnT>(d)<%zS+D;${^9?o~IsC~)4T_@W}Rqfd6oZEHR-p=sfZ*iQDp~ZIZ(ST{4 z$pTAuTUvJ{RZHA9X*iJiE570O$$($%o@=rji+R?q75LxH=cT?#;aSm6_Xit%+O<!- p?3kM<!JoQ9Kv-Cq`{q9;U#B(a)h=y%%)r3F;OXk;vd$@?2>=RnN+JLN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_action_countdown.png b/app/src/main/res/drawable-xhdpi/ic_action_countdown.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe602a579b02d5afef7630fceedb32160260caf GIT binary patch literal 1209 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS#h8a!PbLn>~)jpp?ib`;Rn z$}-W)y70ighh=TomZbqw3uZMjE<V;V%guq)$)TCW#q~nMmM*2P43_R+`L*X|mL0tL zT6X(wxhHBfr)(+TZJqx-JH0(XV?jetkkZ7C%7?uC4#~-n^YvvI1RyZLVRlDWcJ_96 zrHRQKBi@8KJ3GhP$n`s1J^c0SSNE)}tg;-d#@VxH^E>S57ATQmsz35v-+K0O<KhR3 zHsy*lecs)j;FP}krmlbzXI+#>g7vfA4>)^-pU*H0p7wC2UP|B9rPKEEth(EDwEn}Z zzpQ5~*nP8}$Yei1^8Kz@!s#EsV?0%s$0kp_yo*)5p@QwQ#h$PqHvbya&xwRq_}pMS zH&e`xzeTlX8`q)r|NhB7E4Z`c!Azet?JIc)R&qVw%zme(b^e0p#n;t8=hvnG?2Y@d zCcL;&Gi=7auSFjs8jl9ZR$t#N&BF5FUh(QkSHXLqJ}H;olivTm`FrKu?n4P@9Mvx_ z(Kr<Sv$ntY!~9vZX8FCIC;WI`YXi60p?b}(4*}0x&ML*V9DZoK?AfyQ2W*VB)-rzx zTzqJG(8|AGHgGY_v+zy*n8Ut#Z%rG+Tfck0%P(7h{Ii6qWxbktL)H%m#Xmga&ki;A zaojR~^5}2ugX>%ZY&{(34|hBL$Pd`ttf$<e&amdl>j_JGO<0vJ8PuwE7#-$s=-X(+ zoRI6)ofPc0b@@)M-SO%(q8Jjiddiop=sL&+t}Om;+;w-oo*_fYio{m^9V_3qv@_as zbI<$2u)>UC&Br({hCSwM|E;ZKWO%<^w9<2GIzxi@bQNi4gWZ3b7=%?cL(@V%-QVoj zKU&*w=c>&xO)RCg^xMmVhReIy%~%dB2(h`yc%aFkVEKK91HZ2?VOq_{Fzp)O8I~jY z3>!Y_%;hbSsa1V1^?f0m%F?DDKHd|Y-M+sB8m5FuUtv73s3GT8yWa+9iQ>3+&Xm?h zV>#z+-$(VUzU??CclY6~yzR%F?UdVW?nZ5`da_6HrkM95JE47Z`1~(4te(f-@3wer z*Jg(s`V0xW&zG8JX`b73Zg~gGU%N{Uii+$Je#<Z4F7f@~G3!7E<E5RQVII;f%dOT3 zKiskCMZxMT3<<pDA}6EfZu5Nc;l>>WpGl{8uhg~LxSA#Vhvu5>Z4UMacWqhVyO8z# zR{v)W8TW%!PcSK@s$AJ{W=RLfcJB?p?{;lX*=lLO{Nb@nE#H)G{Y{<y+H&(*L7sXu z^Fwo&wWb#(Z{{rTU3`9zLtx#n>GB&y&t2HlZ1#EIqM2f+|7mf@gzmq(vMZ-%(`%`R zE6>0EIw$?nU+MR(+*@|`R#`rcJUitv>ntTPNj`7M_UE!+e(ycFIede+`dcTp&%8`& zSHExKvvPXoHM9MX>gx1_Tdw^4m#^taD;(t4o%f(T?^h$km6Sj$r<jzk*r2eq1+IGR z2i8qj`dL&|Vy7jlR<iM`S+wXU>yI+$>X`Iv4`qMqHk@|RNxD~J){8$IerR%ReB^XC zyy95GF?V_4TRcZx+GZW(_MRtOvG<tq?$9$Y9$%cb-|$QBssGX(8VeejJ}LiYbegq) W-L=#9YZ(|A7(8A5T-G@yGywo6);6*L literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_action_map.png b/app/src/main/res/drawable-xhdpi/ic_action_map.png new file mode 100644 index 0000000000000000000000000000000000000000..5dc190605f866ba2e308316b4ea5f2e714494f49 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$MN<3X0Ln>~)o#p9$I6$QJ z@ty#ez&Qt|x{6P{q^aw1RZnJxhQ_5<W{y{GuTL=^WnA5%v1rkwFZs6ON-Z}sF7IJ8 zeSYAn>+C(Ve?PrDU8iqZponXrh^uCZ*3?%%Dnh{@EB>%N7EH34>$m;agk4%<-K`VK zSs%+DbG_fi*M3-5!=!u3af$nH8>Oob=UcZW_B^=bcJ#n(!|yDQ?#vRd-ygOmLnXsK zak58Q#F~ud2TJvK==DEN(GbbfP%mE?u;Q3Z;+d_ApDmvT#g!P%%$cm(yM+By$X$_l z437mj>K#onnt3ZIOzPbHqd%`NJ+ppE#>;q}yM`+F!UMMid)!x=#<(;7*Ue3rUI}O( z*>?NSyl(eHs`{>vZ&}{?kt%sT_VF&6K5>EXPoIS|9=I(0|IXY%pZOxqAGZZ*uTWwL zx!;fz_v61pQs^)H0){o0O83fDcQXpi?s$HHal_kpy&2mRe})C@y!cO&;oJ7Unj16X zCmv+}F#D4*1ET;z)WFStVqK!d;$7>^S%n&|inkPc&ymZkas1ELaQ5%VFE6=IJuNbA zWKQ_by3lpsk0vJO1J~5TC7v@b33shiwR7Y@DSzZ+>Z~>IPR&@XkQdCa{o1$aHy?xN zccqCZCX_CoY&X5``1@?TA5DBm_h_p5`L=r1+%kW5>FuvfJ4WSw3UlU%Kjk)hyED=- zFl*J<*!q*%yn=r-)ypRx6@PMzAyaDO@*^|Wh6cG#`{8OLbv9|{_7!K8KX*!hwZ3my zG+$|1V9oYt({*ZhcS&e`TNR{Rxhid8`X<Ro6>Jx(O}Z9obS=_o{l&07BlnaQ(-Bq% P1_lOCS3j3^P6<r_1hO#! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_action_name.png b/app/src/main/res/drawable-xhdpi/ic_action_name.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a8670120df0b03ff5855710cdc606b04d48b38 GIT binary patch literal 778 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$ME_%8+hE&{oJNve`w4=x| z;rV++UDi%d5@qpp&bo6pb@HAJhxjiC*)OskobD9grO>1y5wLh)2G80{5^w8ozdyh> z%_3Xq`=gm(WGr?Rnj3%q`|Qk_n|D1`l+?s_Exr8G@v@2i(x8<UcJuome=b=VAn~H~ z;^Ub<Y0QgGe@K`4UuyN2|N0!JGgb*b-+Df{C>in;-dA|HF?7r9+t>5dC!bVYdo+FX z%}S1yWm++ekJtnamoKgOQYEGIDqr-ygjBuG>8MNVp5Jb@Id}h|{#o`^nd`S4FQ^G6 zZM?xAJ;%#O_IX(bYsO!>W50P?rrkMkvEV|IpF?taEXy3{AIHn?pMP33dB?X)tPjkx zKfYMVX|ivjP`r-V@7*VbLj*LeBJ?L_JXz*_qrW_Qnk=V&8}n1nIg{raA7$D0G*MMk zbJ2q-Z=Woe+J0rST-%i%t>l!MW{cC)LXEfcKfNaM)UVj5W>Oc2#m9wrin4c>FdsGi zc~YzD)q!>ni!5F7P)Q~S1`Y<s5A!tN3rKBjlC0wA{o~m8Soo+`K<>Qn4@_P43hvnS zm%TYSU9*-?`>yH3{d?~{|NXY%Q}?t-4o7eE8_eI)S<bVwEm4Bo@n!#_Chc{PWChMO z&3a;2EdG9m%JQZYUxRlsI7Ev(M?RBqZ%|}lX<!gwU~*tEU~|atpRikg()Mc8Yrza2 z7OJ6BqRdaP3(=|#*%z;1!Mq}Bn(4DJ_Pti0nVF&)=9=iNsd8d(*jV?Pr`mk+!w05Z zJD6^~e-wLQA;Sw(hHu%MGT1|1<8LM`{H}82q_MUAJnIdt4uJ_0$2y{Ax42Zjt(6s8 zC~Yk?=dhwz@3&1${f>vsaCmdOPTSlW5&{YgEDZ4s|NpKwylUrgjDhK<yGMEE^*cwE zSMT8{DnAi^m4BYZ*FVC4ydTV77;uu=`Q!I*m!Cc8HFIk|EVbyNwbtLC^ZarRe2b^n l%@q?A78VwMeeNIQ5yt2pqB(CTGB7YOc)I$ztaD0e0sy$*U6TL+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/settings.png b/app/src/main/res/drawable-xhdpi/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..6ecb838a8b406b91bf48627c76ec2b67012fc46b GIT binary patch literal 1060 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS$MUwgVZhE&{o8~rmo*ipc5 z55LI!MG9SRO)i(0WcJ+>3H~U4v1#qK-Cg1tTW>Ae@@;~ftH_qMp|@Yvzy5wwxM|O} z>N82-eu}lJoZa{4%=X>J_s`@BckVc<n^)L9`*xUy$hR%qxAQ;v+Sn!1eKcBDR(7`% zGeggQ_Ma;?nFE;;g2WrPZQFKHBe$_Kmf^#h=N=OAdegT{>-@jZWWV8NHN%D}!OIw) zeE#Wtk9orBr+zb;8ZrWU4*lDo!NoAo_I}8*C6{032D}kkVm#F=H)d`9)~LIj%ExrV z4tTFwAiKIZc=c7Y#MPyaRhw_V37fvz@`i!+=LymQpB~)*yMpCc%<=Et%Z{1%Y;L%o zo!EBKeS(Rpn`BMhi&HaY;~h_i-+4XLCyn{n!{o$c*FJ36&~e=+T<%`@$GW7Q`z}14 zvEt*`s#;#2*<k^nR&RNz$ntV_lU#6swdT$*yJMxFF|5!Ne7y7fhvd!s7!T+wJ1u!} zrp9=mqh7QmzkW4?hu%*v24#*F72Rjw^jFyYu79#};>V8VmhHxykE~#lT=pQpbh`H1 zty@i#g}yJBmH5}EW7KnHLh7aB$G^YxIm|HNtbN?1_>z6e^8Nek*D|e*ZQoa0<0kM! zeA%9QmqQgA0cIcU=L#t#yh%Uy)A0a9b*@OG{>zOE?$>Tx?bjkWsabm3)_X!OmkW2w z^3)!ZIcBFBdn@Z=Y0ryzL61YbOdRWZ|82VN=_ZkqG+#tCa>{~5UtCuy3jMV+QZ9{s z_;Znk^yH@0uT_^rCYetAFMKfS$c9Hd?k6+MdOCsG%b$bE;I2qC1M`~e1x?&KVP031 zP3AmcZ}Ur6-=kxidF=6|1Jhn#;c0&SNd5GWhr%l2Y%NRjoLgpCvv5w)W1O8R7=GxR zO5KYlRdxIHjo+(tg5D*(S@LqyeI`kvQ!LzUkEgdzTIi_k)Yk5<dO7i2+o`eyd9{E^ zFAX+FrN8mMu71I=&6WL}P%*n&03VlOu-fnS4>m=3&U4u0qL@3)!Yw+HHLX`hL0fa5 zxNG9!;>Q99n*Gn8e&jvjZ&=}k<?Ht`H7u<UedTvxPWxv2!vT7SST=H<`^CmkVyElY z%Ix*a?W0li=f`?eH_hN>jn|ZqD05Ic_v2i*kW{Gh+`l%by@MH@-^QuB`t3f&(JrO0 z_29GYixQP5X*c-l)CC=zlDEwM;;Q&d=4g3&BuD0p|0g1C8>Y({J`m*z34VC}#MAGQ z^9*{Yc`d!GRmuIu%6Yv!+m!9spUmj2s`vk}f4{~_>F8w)AzD)p-(yZFj*RL#@#pb0 zlbv?%YSTNsj5U@CHEcY=z|j0oI%evASxJV9O=tc~A6jD<COAoY+C$;O?&v#@#LTz9 a6<=}rYzGI+-X#nS3=E#GelF{r5}E*QU-2yf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/contacts.png b/app/src/main/res/drawable-xxhdpi/contacts.png new file mode 100644 index 0000000000000000000000000000000000000000..eff1a1566c1c98fc29c362a21adfd63a06f04255 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^SB1U+3GLn>~)o%`E6#8Kq< z`>?QYb@ppGl1`_bF1@<D-yrzabcGjByQbDV2ue<zIP;Q{M{1X?$?N@Zf45Gon|ycX z&g%8w>-c5DChWB?wkuCNH^;bNp<sg7(xQxngoM<Bf)Dv(qNV@Y?us8#Wl~^(qnj)j z?%u5xV2w~{(a};c$=Vu~F0l9sN29J{_o-c%*&1DxCVHp{buO996u+Zccw$esd-UIb z_wL>MJfp$p82|aN-@n(JZa%2<TKq<`*nEDkr9t5-pP42tdzknoK9bkgL~z!R&hx*O zm6dnzk&@@X)7|cW@`P`5MVy96Sv7ORGSf!$|NT9;=UfWA(7vzdKI<ZBqny)g6J)np zzvN-yuU2Y~+TP-Bcjt_y<mFwWd)8lnZM~N9z|%Ya;lanYTytGs!<c-p;>0SR%=w1R z<|PgcEDj7oj0bic&VO)^SG@aZ@fw-SO+5V%>K7+U_^F>v^%G^VV4k1w<xp50t24vX zqMavNnV24ISGug@z4@t}l$2H1`x*fT|NMQCwHGEyaBwp{2y485HEZkfZGV<o-x6T( zKAQ0RRI1uZ!$#)K3=vuJ@%MT8D|-SNH{>&(yXZ3cpfJN}E{o^UmJQqvJq!{7A`HK| z<`l3Vklf60BYeRl#l_}24Bvijx|s21gRXsS#IZh>1B&ap!oO^C{vLe6<xH%7k-}C@ z>%$UUu0K|ucpauNV{Pzdu49#XoNxNJNeSP0Zd@kvefIokEoZFQ)2iG{0?)4M<vTY+ za$CZi4n`Z*lqF0G3_*+n3?S5TO*QuEx+zQa=KDMAWHe7baO732MBC#ZdpO@7yq~_~ zRpZm<|Mg2^^yHu0vDG}6vdb^_wB2W(%y%_F=R{KZNu4ipCi%kbx9$XF^j+S0inpXt zC-7z-gIK19#GjBO);7m8Bp83hpE&;_D9>`wOI_~Wx+S6IAAft#WIeEst!;iz>dA%q zE3al9mxw;4)L_c6f{oMSO~=L1b+Sfrp}!anqE6c69`cJlvC#D1$G3*6q6fIA+vJBF zO6~FavqX-e=9{*o6D!;9d07k^7x-U1T*CBV!JA?o4<&}}Os+betJgDdG(gaCCf&y~ zmq)Hp(K=Nw_RDrFgT#Nu7MA({x4rqCptV$Gs-Q3f<Bf9+Xa22Hl{8+)Jp0U}>y?t1 zcCntZn6JpS{=v+i%(cnqCQmlt(SLEnYj>%4jNRkZwvI4^mCe!7=gRwk_e?HtdJ!$T z{pI$0t@-EQf0R;x$o%oa@<5gK!Ar6?_}iXRemir|z7z+Y883f(9h=&{N9san(8`jH zbG2=Y_8d@HUEYzqYNw}vd8em}P^XL1#4VvkY18JMv_9gq!qQIsicH7#6CY%gK5vYB nu}1rB>GC}gUqQ&Zf0$F=Sah5bluTq`U|{fc^>bP0l+XkKUTo-T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_alarm.png b/app/src/main/res/drawable-xxhdpi/ic_action_alarm.png new file mode 100644 index 0000000000000000000000000000000000000000..723fc148f0cd58a6b27dee701c4097e6bc471899 GIT binary patch literal 1204 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^SBsy$sCLn>~)jpg+g2^1;S z{=I3@CjMU&jJErjeRGx#Kb*9(BSzz(z^NvMrUgDmzKe9sCZ8}med$X5ZCiswVpi|Z zzByy}{H*1N8>yw`Y3C~6-~0V;cKPy!jS3u1P*ig9>eZ_qZfdVOO04#--o1PGm76zz zM%|jj@xk?0%bxv{PNtMiTF7zn^5x4qF8-Yi+0v$hk3#L{+j}fia)^(=FQ@qPZQ7IY zPJ_-sr(;fSk1foXd|$tc<-q>~G7~pWSa|vOYPW+dlHBnPs<DhIEIJc5eqfFGtaw06 z(pZB*N|Kv@WsX_(ne_~h*!v#rUZT&SHT9I4fX1>XQZlQy9A#koGv#`r&n=Y}+n)O> zo24{FxZGQ}9Cv!4zkf+}$3~5}f@(!66~ZFjN0~1@Zf{xfbVJAe1&Wh)UA}j3-~68c zvy*lxJUQ>?@#nvCl3SGYOmTJ1mM<-tc{RT}oRVZs=PVL1&~RCEW%eH}!GbqMO0rul zZol3-fj_=6?#;HRQFZEtJC%37=w|eYp7h>E_~E)|MLT=;%yV4PwSx2g)A!Q_icY2L z|M|C#<Ab%Ko#P2BO>yh@%?rHj=I@Wunp*Z-phCZD>z=w#iic#>YCJdmUc76gwUe9T zQq3111@d++T)S>^eb!d{2?fULDSs|1{GTl_o$vLIy?gh{o|usJtC=tQt)19~bQ6ys zZ!G-0SsraabS6WlzN(_4Vs|Oi0kzjNWDPBsE6X&lwR+8UiBV?t332va&g(LRrXF_B zkovk);a#|Hu9v&S=2PMamSo)ccd?46c7~I=_bbUyV%<j{o6VfBIQ6rzd*!yc=gNt1 zD|<Z?ZqB+8toLp4p+9@pEPveWIpwk6$~hZFE0uimLb$b*9IiD)mV|Ks{`>cDdyav9 zr2caDLZ6n}9laN|QyGO@r*!i2{n)1U$e=V&D(ywu8`cTjmFpy4ZTFcw+v2ffD}#T| z495K*yZ%m8GngqA=;HL)jKkouXr0p3oDX+yiA>&9Zf5b2)%DfE2ri51r{^AuY6y=z z)h4*%QDNi#Lh}|!;VU}NKOWA$dxK5=&CIf6k2+TtH~)CS5_UgXDxGo7j^k690vNa) z7&RDJ7chu4;NiG*i?AB7l-oyGzGGSt5+(DUYr*sBq1zjdJ2Je<Zr~_Xj?ZSVkzrYJ zE6`p*dh_Dl%yPe5H(s=weDaO)#V0@1OUnG$b#J(OHt-bx&)47YI<S<h%*gm`wbbBo zLSN7_?))n|4;**MIoqeJlp|U^#Y^gE^eLH_Zh~Un2_{{O8AKEwGVOSpkaoBFjqvpi zzu8m2_F5%&G)$au<k__SDW!2u8^kp3+!Zmo{&<@8;!X}O3yZ=M`K%LPeLfq8oAxox zHA?U5Qg_i65OUAzxcYw5L8*rp=XNSgE!@axed<@Sr?Im#W3|0(fy9C4n|F?juFKN< z)N}Etn}8taPJYp){9#<JhivUr`#AsGEp%<EP)OM?erf+M{x5T;eg7UfeHPDEeXFb^ kF5JD(+MvZk%|m@TtMHlkFY)#;FfcH9y85}Sb4q9e0PmJ1bN~PV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_countdown.png b/app/src/main/res/drawable-xxhdpi/ic_action_countdown.png new file mode 100644 index 0000000000000000000000000000000000000000..e5f2189e448773255fb417433ebb600b16474892 GIT binary patch literal 1975 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_map.png b/app/src/main/res/drawable-xxhdpi/ic_action_map.png new file mode 100644 index 0000000000000000000000000000000000000000..b6850aa3fb789d9db79ff5726e047e5c12030e24 GIT binary patch literal 1116 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^SBls#P>Ln>~)o%=dl*iq!@ zb@m9+`}r5OB-V5t$(xlTEZWH*wMxuII-q9Z3Jxu;Yqz50S3cl&U75S~Z@#VjGv}3_ zw{p|U%nJBo)FgISm)98=r+<FvBj7Pf#S@N#oK{`UI=%Vkn|U>M_xmMYzkDgFDZ=%9 zk;biwpRP<d%zskN`H}M@<4^hAZol;*TG|sotc%gR-o7M$@mv>cYx56(S#CYg@OPU1 z<3Q$%FYDH=D?PEjWl!9dlfRQ!S<89myM9snI6Y(e^YW_6KRW;aH{dy3qc%D6>Eg$Q z?`vnwG@tPMx?AO=-S#VIFOzv06ExwDfpE{om!-_tf49EA<Ct>#>8GseCySpge0=`V zynM0Q@ln^ly!Dac<lTHY>g^Xcg*1Wq4?m+eM%Z+uu08DbZ%*QgzZ~mo`6tvLIeR+# zczJnwzRRKX9eLNIFUPW_i*+m9I-OxXJxHISko(_1rAM{eJ5_GIlzF)$^Qg$_nJU(` zj1rH3)Xdv0a_)qhX(sP$u3PHcKKUoHUv8A1YcSXDVM6B2Z5+vyZb#|0cjUGll$FT3 z6jx*4@!szC3hz#)2e)2Su%s9CXKlXg#(ng+<SoV76KWX>c3nB6`)p~@OM`!Jr)h56 z{8r!`V?_nSzQT2^EIbeHFmJifdf+iL!vVH8JNg#acKy(0kdtq)=iYE&(F(qY`O8@j zTxOmz_pD!@?aynkHl5%)z_coCwRXUs?~kLxe`qgdsHkChw`9j!*BF1UHU^W**H7Pn zWqR<Fk;Q?52=tS?fkC65QGns8J_FN&KdcT6Q}#1(G<*_gU<~-jq`+`09>tV9H?Qt6 zc_!T8Y7w_^?ZrABp2K$=Q+InYcI0pQ!l&@-<-QE&Hij(^DpK#P^P7J9>DjY;9<Us+ z<*B-AyR13)PL(19Uz*#(fF1qk75^%*99SQ#y7y_`BHJq`PJ}W{nk`vkEWhM=ann!# zt-1`!t~N<Yw?1t>{<16kk5equj@w}jJ8~|_i!A=46}v9O_Sk~Qx>nf@@0qvt#>8Gx zs7kr)cw<`q)?$WdsoipyRilE;c1^cTf6&0K9L~+0K4aa7ZTI|z7!Q=rRQJ13Z1t{o z=lk@+rS1FqmBY`u6u)!SKkvv<lgWAVzje*R2pzf2rmmLR6}GoDE}yu%?f>UJs@>`} zUkaBLyRq#Pea!fy+D|_BVXWUpjjn5pi<R!Yp6IH4-Edy!<_W*6UNIDyDCHI3<+GXd zGpQ%Wf8)L*hDD~<8v>88ZeF%Lywq>%45v%$D{k<)Cr@ZPTxO9~$u&80z5DBf4`%gM zoPMk6UZpi{y6d?HC87Umi%yBpz2bZMe|NdMRn>t#a|$zM9&DSgw!RT5?@m%tU9z7c XZ(Vob!QBQ73=9mOu6{1-oD!M<f%^d` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_name.png b/app/src/main/res/drawable-xxhdpi/ic_action_name.png new file mode 100644 index 0000000000000000000000000000000000000000..7b7dedc9ade0ef8322517f3a83c85243c0f3fd3c GIT binary patch literal 1251 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^SBR(ZNOhE&{o8~fWk#8D(p zyZT16(y2F&0@s?j*Y)r1QYi8~DyIB)W1`qC{?@-Kjtgwhh*dAhyqSFVSN?Clv&WRo zzHj}$v3wtMd+45bbARreY5aVSWqF>O^TGfP5&KKGZ{ODOQgITyz3uzg@87q7`|>4* z^}*&JHEgxqv4`KUzL5Ij^1FBMW;!iQC@(9UH|@V-5hLpYdFBm|FSx!CJMi~ykoE=E z48ar`wMlZW4u>=Jn7-u8IsBiW=j8q|R@dcP<Sd37#$``yWgGr4|FJJ#Az|tI_4@kX z70>*co$=dBHly74yHc><>HI)A%59r?}wyiH(ho&J523BM!U|iClC0_HBNFO4CoQ zHHN~0f(qY-ge-*r-TJeLpW*s~M^Dc@EcV-@^5@UV<318*RlXY(<Z}M8H`L0?U8>}r zDPDND<p^8eb(XCLv(<0reA8g~@q%f|`X7599-Tk^JzM1VJ3BT$l9hb9=u}2oa@L2L zU#t6T?B+A?c<uMP@d&3|<Nd2wOJxq!luOK9ZNRVoTEKU^)kKAZvjPQ;8D^F+u{?-h zdHwGdp8_Ly*JPs^FWzLgU$mENI=TC)!+|D2PMe-%#S9hE%>Q;9h`DZk@p{kVu9QIE zh??UvVn;V_c&Dqk>aflRUxf!7`B)-N4)5CDCA>wGOPC|#!p!*_l=EYc=*+fS>2LcY z=<KG;qK(2ERwyP|zLg8;KBvyk$ge!3v3S=F<*U_avbsNRKE~$nYQT|Z%Ccs;m98U` z2Lq=9qe=tI1O}lAbxbOoHLmjQjCtn~dU2=OkB9LlFB@jwdVM$`_ABeZZH<lvtG-pe zbY2;9>$bsx=xL>Fb9XkM+cTjy#&p%HT?<#&9k^fjX2-sFt4@iPvc^bTubXbC<7E|n z!c*r%P&)I6_f=~i=4eda*Vr+8hUD+b(~>3_ef+7BUHvG?)O(&v=I3Rcyjn|Tf5et3 zO>UW`G&Ons47Uam(FO0*lhqk|XBriJ3HO}QbN9~z#nfQVhJ9Wob@v-21>XN_3{J^r zVEpKI4&n(1WFLV!9TD1v%MSG_JG^z%JssRTEj4yR`(HM8cK;LeTB<%QmU+5vP9{qT z!>^8aJ?yu)@vlnG+vedg_aOTQ*}U7T{`=h>n*>=_G@G{7=1dhkZ07DJ(C|L~Q!ty- zGmSTQt%7|fyxm^w=bti(p*+q%`al=2kie4zwmaMJf9vd)N}J=rB;)dkMM&TR3u|RT zbd%|<1r1yR?Mx!Qy^|Uq%&mF3{F|Fn+SF|djEvShdGpgwwEvV$R0uon6rr<Xy6ukn zvVkd{y<W#wW<61yYdNVS@{(BK(iOel?%kG?OdZA2KK4ENw~9Ac$k6*%)5{ke-`TF5 zd@;MwcIIJO!#vMP3_@W4!=e|;Q4>t~)qLw!?6i$?U$oShu92`|o@P|YEoGSdAyROA zvigBdYrHe<RK3gh%z8F8YU1pLna=L@MsZBbwFKr#m!#aRdE^&4{ju!D9qhZlA6}Ah zaVl4@=E^<iR6>_X@w(h`PrkomduWc?Cav&dPW$`bM+8&l_AE}Tw2Uf!yeBa9*MwKo ltpYSexLTbS2KY>|_fx(2@DFE?00RR9gQu&X%Q~loCIDJ0G=TsB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/settings.png b/app/src/main/res/drawable-xxhdpi/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae046b3f0f6319909ffdcae41eb0955a6d901ca GIT binary patch literal 1758 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^TsmU_B4hE&{o8~ZyyBvjy? zSN9JW#`u7#?n|#tdYgCq?z>}V(<X2*HF;f=H(_L)Ewn*Z_tasLU19-SyehZY{EL3> zeQb%I_xromY3FuUTTk}M+kAU(^}923EQ|New7h*WF$E5`%&MxYihJ|^ef`ym=Cf3U zFFbgVP*+j0!_LHH%Zn4{T2sB|dv0Nsl9#{l(zM%?t3vDGk~5XFIducJM%{JdikKM0 zaQC&{$F#{gK3XDN@}8XaQ-$mdP99Scy0QEcmxfsPVYQn-xIdU*;!?27nbd2~tR@<B zL347Bk5Xc6_zcGBzMBl41B9-{a~VJ2-&MZc)1t}E&F!A!jTHvW(**9#YFYfZUSIc+ zzew7F$3ZK%SZ{7xeKkv3W!Vll4lT*9N0P6<{^DLKWEXkucgoiN6Q;&0+f6FCK2v-8 z>FSr8!?%h!eE&D|*v;nmS)~Pw7cb7gWZU;p@}-sY_3xL2HtylMu;!s-c*l9hfW_J2 zQy!c&vTtPC%5vXDaC(P*Ul7ZM2%~jOy>FTR{$Jcyedgg`lOJ#NuYKCRX3pU+-?trO zSL?p-^?vTeBehWhhqySul}v86oPPfK{bk?#F8$ZB$+tc9`pdt63l6n2WD3+DXFYOa zmRiPx+7Amq9RG4l_I^{o*t|<yI}9(D%BSglY@RWHZ?J~QJq}LEIetGbbT4GRe`J=p zu-)nMg<|*azDb(5F1<}#dHU72)eqk~scg8{y1%Rb)2`EM|6@%T+CM(TwwFV`Gw)<c zV%rph{t0*7Z&aRPxmP15Ab+LIHvi&u-Ps4`%V(`_UD`4EC3l^Pqx&OY_0SDUId`SE zKR)JLIrGUD_o|0?J<R`^_VUkmo6d2;-$ZAr@AY&kiQ4Y&JI)LVPm=qY&n;NFPxhaf z#?u1_4)8syQ~7K;cc)AQV}GWOsOO19yMmtDc`W}DW$t(FaoHJj&vpJxzD$#btEzwh z$1G_7!E4FHe)y&GKGBRf(~pQWc$v;Wp&I>njf)5Sk!kPBZ+_0%5xX*^EKB9|`iiOs z$q;vsUfcQS_cN(h_<YN`tR?w!3H#4DN!GR5B9}h->{zPt!@cBx{zkTy@7gvBToUhH zc*a?|N}zw?{8-_68avMH?x@<M_S*8&kJulHYPJq9FCTK-+_0!c!E@%ld-tvjD0xMQ zUTUxtk~Wa(tYvD>7mkQ;de*wpTaEk2CDCOMc33XAjr);t{Z_Ew3;CYFj}J|~pY00& z5N7u->R+GGtSh0%E-v_2vSpR+zGGZB4qbh}+>cRjtL=y7Crm3s4)9%Hp<c>Wur_8{ z@4eUij-5(vJFUm)eCx^lY;{(KM<-@6&550G>)YPStkUXdF#*=Phi(X3_kB&1N<T1X zaj5L47fpS;)An3a`Jwmde604I#;{*EItmL9&T+U`UjJd9v53;bASaHl9q$*vWSnWb z#JsggY`IF}=P<)>c{v^}2X}0i>v^`vK%)F`_I4ishk}plO&(-KtWXlz9=?*XU}Cm& zX{-iwr0Ll{F@{u!NYkYHCo@b>U+LT*beglk`eM)WE%&CR{1=^XZ}NJjQ686dZs0@Z zgFP;rpD+0{<%o|%m2lf*W6l1pfhOA*-n5c>+81+;CFh-#wT11c9+eAW{1FdYm>M?A zWFCopa^dNX-Y;n<#I(K$dmlT;?lfI3Y5sw)w(SWw5A-oSXk<*?ymhhcx2!vQ?y2Hd zTFV%8I=tLZSlFtBr|Gns^`*TG{aB*<{ldE6>rPlaT;Xk*dPVNR98Swg=U2RC^;&vq zw_=}Y#$vmT?Kkw7?pmbqc<n0pD;pJDWVu8OBR~A*zSp&7huIaD|NlGIyfNi`{JCbn z*@l1J_a+<P*^<~^s^R=1a9xJd!v*h`22A)av}nG1^HP<cDJypueqLemi@RO9aPjeo zJBQ~@`D?z)@>Id<nvN?acLJn4B?@0y9@Mdr+Gufi+3V{Jm!-@#Dthnj7dSN4@r1>} z)f?qFlb>8VD%|nyT9ai!kH8)+riI~;UuxcYStKYXI(5sl#fQ4=HmceEEQlA`b;_09 zWB)lbEvB6h5;%XV-P{yglk&7QZ(82YQ@zpiKh4tJD530^;WKIXQ?;W~^4`U|5#eW~ zGWYv+&gW$8S-q4&D9V#V^4+TwS`PyRtan)`d<?nnu|j7hb86&*tgXK$9osnV#h3G2 zUJERdQQ~1`jWN7<?0&S5R?dz(gOhA$EGrJaGG5ZK(WGs`>$VA3w#gT9uWnd-$UgOl z!VAskZza08t}nV4{4tq3cN-tiMxkjj5)O(6YLhb#&HNDmGcm}IHz^ZdaZHi>B_0=0 WZEYKyxsri_fx*+&&t;ucLK6TvUsi?y literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_change_password.xml b/app/src/main/res/layout/activity_change_password.xml new file mode 100644 index 0000000..fbb12ef --- /dev/null +++ b/app/src/main/res/layout/activity_change_password.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context="com.speedyapps.keepyousafe.changePassword"> + + <TextView + android:id="@+id/textView10" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_centerHorizontal="true" + android:layout_marginTop="30dp" + android:text="Change PIN" + android:textSize="30sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/textView11" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/textView10" + android:layout_marginLeft="53dp" + android:layout_marginStart="53dp" + android:layout_marginTop="100dp" /> + + <EditText + android:id="@+id/editText5" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignBaseline="@+id/textView11" + android:layout_alignBottom="@+id/textView11" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:ems="10" + android:hint="Old Password" + android:inputType="numberPassword" + android:textAlignment="center" /> + + <EditText + android:id="@+id/editText6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignLeft="@+id/editText5" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" + android:layout_alignStart="@+id/editText5" + android:layout_below="@+id/editText5" + android:layout_marginTop="36dp" + android:ems="10" + android:hint="New Password" + android:inputType="numberPassword" + android:textAlignment="center" /> + + <EditText + android:id="@+id/editText7" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:ems="10" + android:hint="Reenter new Password" + android:inputType="numberPassword" + android:textAlignment="center" + android:layout_above="@+id/textView15" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_marginBottom="31dp" + android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" /> + + <Button + android:id="@+id/button3" + style="@style/Widget.AppCompat.Button.ButtonBar.AlertDialog" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignParentBottom="true" + android:layout_centerHorizontal="true" + android:layout_marginBottom="30dp" + android:onClick="onPINClick" + android:text="CHANGE" /> + + <TextView + android:id="@+id/textView15" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_above="@+id/button3" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_marginBottom="25dp" + android:textAlignment="center" + android:textSize="20sp" /> + +</RelativeLayout> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 683ff2d..9fa169a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,17 +12,6 @@ android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.speedyapps.keepyousafe.MainActivity"> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Location" - android:id="@+id/loc" - android:layout_alignParentRight="true" - android:layout_alignParentEnd="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" - android:layout_alignParentBottom="true" - android:layout_alignParentTop="true" /> <TextView android:text="Keep Me Safe!" @@ -33,20 +22,10 @@ android:textStyle="normal|bold" android:textAlignment="center" android:textColor="#F44336" - android:layout_above="@+id/helpButton" - android:layout_alignLeft="@+id/helpButton" - android:layout_alignStart="@+id/helpButton" - android:layout_marginBottom="18dp" /> - - <Button - android:text="Contacts" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/pick" - android:layout_alignParentRight="true" - android:layout_alignParentEnd="true" android:layout_alignParentTop="true" - android:onClick="contact" /> + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_marginTop="44dp" /> <ImageButton app:srcCompat="@drawable/help3" diff --git a/app/src/main/res/layout/activity_maps.xml b/app/src/main/res/layout/activity_maps.xml index 638e859..e8b7e5f 100644 --- a/app/src/main/res/layout/activity_maps.xml +++ b/app/src/main/res/layout/activity_maps.xml @@ -1,7 +1,7 @@ <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/map" + android:id="@+id/mapText" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml new file mode 100644 index 0000000..60e57ab --- /dev/null +++ b/app/src/main/res/layout/activity_settings.xml @@ -0,0 +1,169 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:orientation="vertical" + android:layout_height="match_parent" + tools:context="com.speedyapps.keepyousafe.Settings"> + + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + <TextView + android:id="@+id/textView5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/imageView2" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" + android:layout_alignParentTop="true" + android:layout_toRightOf="@+id/imageView2" + android:onClick="changePIN" + android:paddingLeft="40dp" + android:paddingTop="20dp" + android:text="Change PIN" + android:textSize="24sp" /> + + <ImageView + android:id="@+id/imageView2" + android:layout_width="50dp" + android:layout_height="70dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_alignParentTop="true" + app:srcCompat="@drawable/ic_action_name" /> + + <TextureView + android:id="@+id/textureView" + android:layout_width="wrap_content" + android:layout_height="1dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/imageView2" /> + + <ImageView + android:id="@+id/imageView3" + android:layout_width="50dp" + android:layout_height="70dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/imageView2" + app:srcCompat="@drawable/ic_action_alarm" /> + + <TextView + android:id="@+id/textView6" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/imageView3" + android:layout_below="@+id/textureView" + android:layout_toRightOf="@+id/imageView3" + android:paddingLeft="40dp" + android:paddingTop="20dp" + android:text="Alarm Toggle" + android:textSize="24sp" /> + + <Switch + android:id="@+id/switch1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/textView6" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" + android:layout_below="@+id/textView5" /> + + <TextView + android:id="@+id/textView7" + android:layout_width="250dp" + android:layout_height="50dp" + android:layout_alignBottom="@+id/imageView4" + android:layout_below="@+id/textView6" + android:layout_toRightOf="@+id/imageView3" + android:paddingLeft="40dp" + android:paddingTop="20dp" + android:text="Count Down Time " + android:textSize="24sp" /> + + <TextureView + android:id="@+id/textureView3" + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/imageView3" /> + + <EditText + android:id="@+id/editText2" + android:layout_width="75dp" + android:layout_height="50dp" + android:layout_alignBottom="@+id/textView7" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" + android:layout_below="@+id/textureView3" + android:ems="10" + android:hint="10" + android:inputType="number" + android:textAlignment="center" /> + + <ImageView + android:id="@+id/imageView4" + android:layout_width="50dp" + android:layout_height="70dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/imageView3" + app:srcCompat="@drawable/ic_action_countdown" /> + + <TextureView + android:id="@+id/textureView8" + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/imageView4" /> + + <ImageView + android:id="@+id/imageView9" + android:layout_width="50dp" + android:layout_height="70dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/textureView8" + app:srcCompat="@drawable/ic_action_map" /> + + <TextView + android:id="@+id/mapText" + android:layout_width="175dp" + android:layout_height="70dp" + android:layout_below="@+id/textView7" + android:layout_toRightOf="@+id/imageView4" + android:paddingLeft="40dp" + android:paddingTop="20dp" + android:text="Map Type" + android:textSize="24sp" /> + + <Spinner + android:id="@+id/spinner" + android:layout_width="130dp" + android:layout_height="wrap_content" + android:layout_below="@+id/textureView8" + android:layout_toRightOf="@+id/mapText" + android:layout_alignBottom="@+id/imageView9" + android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" /> + + <TextureView + android:id="@+id/textureView9" + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/imageView9" /> + + </RelativeLayout> + + +</LinearLayout> diff --git a/app/src/main/res/layout/activity_welcome_.xml b/app/src/main/res/layout/activity_welcome_.xml new file mode 100644 index 0000000..fb5d77e --- /dev/null +++ b/app/src/main/res/layout/activity_welcome_.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context="com.speedyapps.keepyousafe.Welcome_Activity"> + + <android.support.v4.view.ViewPager + android:id="@+id/view_pager" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + + <LinearLayout + android:id="@+id/layoutDots" + android:layout_width="match_parent" + android:layout_height="@dimen/dots_height" + android:layout_alignParentBottom="true" + android:layout_marginBottom="@dimen/dots_margin_bottom" + android:gravity="center" + android:orientation="horizontal"></LinearLayout> + + <View + android:layout_width="match_parent" + android:layout_height="1dp" + android:alpha=".5" + android:layout_above="@id/layoutDots" + android:background="@android:color/white" /> + + <Button + android:id="@+id/btn_next" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentBottom="true" + android:layout_alignParentRight="true" + android:background="@null" + android:text="NEXT" + android:textColor="@android:color/white" /> + + <Button + android:id="@+id/btn_skip" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentBottom="true" + android:layout_alignParentLeft="true" + android:background="@null" + android:text="SKIP" + android:textColor="@android:color/white" /> + + +</RelativeLayout> diff --git a/app/src/main/res/layout/welcome_side1.xml b/app/src/main/res/layout/welcome_side1.xml new file mode 100644 index 0000000..7c28e43 --- /dev/null +++ b/app/src/main/res/layout/welcome_side1.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" android:layout_width="match_parent" + android:background="@color/bg_screen1" + android:layout_height="match_parent"> + + + <TextView + android:id="@+id/textView4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="25dp" + android:text="Welcome to KeepMeSafe" + android:textAlignment="center" + android:textSize="30sp" + android:textStyle="bold" + android:layout_alignParentTop="true" + android:layout_centerHorizontal="true" /> +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/welcome_side2.xml b/app/src/main/res/layout/welcome_side2.xml new file mode 100644 index 0000000..79ce4b5 --- /dev/null +++ b/app/src/main/res/layout/welcome_side2.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" android:layout_width="match_parent" + android:background="@color/bg_screen2" + android:layout_height="match_parent"> + + <ImageView + android:id="@+id/imageView" + android:layout_width="150dp" + android:layout_height="150dp" + android:layout_marginTop="90dp" + android:src="@drawable/pin_icon" + android:layout_alignParentTop="true" + android:layout_centerHorizontal="true" /> + + <TextView + android:id="@+id/textView5" + android:layout_width="350dp" + android:layout_height="wrap_content" + android:layout_below="@+id/imageView" + android:layout_centerHorizontal="true" + android:text="PIN to cancel EMERGENCY MODE" + android:textAlignment="center" + android:textSize="30sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/textView6" + android:layout_width="300dp" + android:layout_height="wrap_content" + android:layout_below="@+id/textView5" + android:layout_centerHorizontal="true" + android:layout_marginTop="21dp" + android:text="Default PIN is 2020. You can change it from Settings" + android:textAlignment="center" + android:textSize="18sp" + android:textStyle="italic" /> +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/welcome_side3.xml b/app/src/main/res/layout/welcome_side3.xml new file mode 100644 index 0000000..e7196bb --- /dev/null +++ b/app/src/main/res/layout/welcome_side3.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" android:layout_width="match_parent" + android:background="@color/bg_screen3" + android:layout_height="match_parent"> + + + <ImageView + android:id="@+id/imageView5" + android:layout_width="200dp" + android:layout_height="wrap_content" + android:layout_marginTop="97dp" + android:src="@drawable/dualsim" + android:layout_alignParentTop="true" + android:layout_alignLeft="@+id/textView2" + android:layout_alignStart="@+id/textView2" /> + + <TextView + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/imageView5" + android:layout_centerHorizontal="true" + android:text="DUAL SIM Phone?" + android:textAlignment="center" + android:textSize="24sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/textView8" + android:layout_width="300dp" + android:layout_height="wrap_content" + android:layout_marginTop="27dp" + android:text="Select a Default SIM for SMS for KeepMeSafe to Work Properly" + android:textAlignment="textStart" + android:textSize="18dp" + android:textStyle="italic" + android:layout_marginRight="12dp" + android:layout_marginEnd="12dp" + android:layout_below="@+id/textView2" + android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" /> +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/welcome_side4.xml b/app/src/main/res/layout/welcome_side4.xml new file mode 100644 index 0000000..e28a345 --- /dev/null +++ b/app/src/main/res/layout/welcome_side4.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" android:layout_width="match_parent" + android:background="@color/bg_screen4" + android:layout_height="match_parent"> + + + <ImageView + android:id="@+id/imageView6" + android:layout_width="200dp" + android:layout_height="200dp" + android:src="@drawable/permissions" + android:layout_marginTop="63dp" + android:layout_alignParentTop="true" + android:layout_centerHorizontal="true" /> + + <TextView + android:id="@+id/textView9" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/imageView6" + android:layout_centerHorizontal="true" + android:text="Permissions" + android:textSize="24sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/textView12" + android:layout_width="280dp" + android:layout_height="wrap_content" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" + android:layout_below="@+id/textView9" + android:layout_marginTop="21dp" + android:layout_toStartOf="@+id/imageView6" + android:text="Permissions Needed :\n\n * \tACCESS LOCATION\n * \tSEND / RECEIVE SMS\n *\tREAD CONTACTS " + android:textAlignment="textStart" + android:textSize="18sp" /> +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/menu/mainmenu.xml b/app/src/main/res/menu/mainmenu.xml new file mode 100644 index 0000000..05f8640 --- /dev/null +++ b/app/src/main/res/menu/mainmenu.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + + <item + android:id="@+id/settings" + android:icon="@drawable/settings" + android:showAsAction="always" + android:title="Settings"/> + + <item + android:id="@+id/contacts" + android:icon="@drawable/contacts" + android:showAsAction="always" + android:title="Contacts"/> + + +</menu> \ No newline at end of file diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml index 3ccb4d3..c0a33b4 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-v21/styles.xml @@ -6,14 +6,12 @@ <item name="android:colorAccent">@color/colorAccent</item> <item name="android:windowBackground">@color/windows</item> <item name="android:navigationBarColor">@color/navigation</item> + </style> + <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> - - - - - </style> + <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 0f7e059..ae65565 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,5 +7,44 @@ <color name="windows">#DCEDC8</color> + <!-- Colors for Intro Screens --> + + <color name="bg_screen1">#e91e63</color> + <color name="bg_screen2">#2196F3</color> + <color name="bg_screen3">#8BC34A</color> + <color name="bg_screen4">#FF9800</color> + + <!-- Dots Inactive Colors --> + + <color name="dot_dark_screen1">#C2185B</color> + <color name="dot_dark_screen2">#1976D2</color> + <color name="dot_dark_screen3">#689F38</color> + <color name="dot_dark_screen4">#F57C00</color> + + + <!-- Dots Active Colors --> + + <color name="dot_light_screen1">#F06292</color> + <color name="dot_light_screen2">#64B5F6</color> + <color name="dot_light_screen3">#AED581</color> + <color name="dot_light_screen4">#FFB74D</color> + + + <array name="array_dot_active"> + <item>@color/dot_light_screen1</item> + <item>@color/dot_light_screen2</item> + <item>@color/dot_light_screen3</item> + <item>@color/dot_light_screen4</item> + </array> + + <array name="array_dot_inactive"> + <item>@color/dot_dark_screen1</item> + <item>@color/dot_dark_screen2</item> + <item>@color/dot_dark_screen3</item> + <item>@color/dot_dark_screen4</item> + </array> + + + </resources> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 47c8224..3c91618 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -2,4 +2,11 @@ <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> + <dimen name="fab_margin">16dp</dimen> + <dimen name="dots_height">30dp</dimen> + <dimen name="dots_margin_bottom">20dp</dimen> + <dimen name="img_width_height">120dp</dimen> + <dimen name="slide_title">30dp</dimen> + <dimen name="slide_desc">16dp</dimen> + <dimen name="desc_padding">40dp</dimen> </resources> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0b1b093..5b5fd8c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,4 +1,23 @@ <resources> <string name="app_name">KeepMeSafe</string> <string name="title_activity_maps">Map</string> + <string name="title_activity_maps_activityddsdsf">Map</string> + <string name="next">NEXT</string> + <string name="skip">SKIP</string> + <string name="start">GOT IT</string> + + <string name="slide_1_title">Hello Food!</string> + <string name="slide_1_desc">The easiest way to order food from your favourite restaurant!</string> + + <string name="slide_2_title">Movie Tickets</string> + <string name="slide_2_desc">Book movie tickets for your family and friends!</string> + + <string name="slide_3_title">Great Discounts</string> + <string name="slide_3_desc">Best discounts on every single service we offer!</string> + + <string name="slide_4_title">World Travel</string> + <string name="slide_4_desc">Book tickets of any transportation and travel the world!</string> + + <string name="play_again_desc">To see the welcome slider again, goto Settings -> apps -> welcome slider -> clear data</string> + <string name="play_again">Play Again</string> </resources> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index fd0ebff..b53f146 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -9,5 +9,7 @@ <item name="colorAccent">@color/colorAccent</item> </style> + <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> + <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> </resources> -- GitLab