diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 28d5863a9a331f42e1b6c059d4f7f3d385f6978a..e02c8b70d7c3345f9edc7f44f96beae8e0d6f22a 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 15bb4ee80a53b162af34a06ede41f9f9ee9cc8ca..109ac102f0adc015110d2af77b9f991c0a9a9d88 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 9a296f4eb4ac4ee90462db49a75669cc338adb14..8674a3faaaaf8419f59b469de223b9aec0040704 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 d75fcf73de37ace2dc69e1d2c7f44925aed1679c..cd2b49786d7069147b98e09d545a428d10dfef0d 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 024306ede0f969b6a44bfec2e8168234dc9c16cd..8f7242036acb224bd57907e988292b688bf62909 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 2e7aa61856ff89fa8e4d4973d4e99015561a170f..d79a3b43195001762be240a74a391174ddf74372 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 0000000000000000000000000000000000000000..4e83ed2bddb32e8dd9c7d7701f6424a76a53223a --- /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 0000000000000000000000000000000000000000..693bb045ba0f35769df61d5c5706e9c0bd27c7d2 --- /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 1df06dd243336baa2b97e56520c7772f3c8e007d..d07d77be974c1f8a7f692bc00f39e66ddb5172f2 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 0000000000000000000000000000000000000000..1a9494504c224fe4185d75206cbe8ee1e5670468 --- /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 7e8a4cbdbf0df2a85eb0465863e6eb1a5c7c7758..7520d8fced113c2bc88fd271fdd4690437bc74c6 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 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/contacts.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_alarm.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_countdown.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_map.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_name.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/settings.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/contacts.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_alarm.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_countdown.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_map.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_name.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/settings.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/contacts.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_alarm.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_countdown.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_map.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_name.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/settings.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/contacts.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_alarm.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_countdown.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_map.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_name.png differ 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 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/settings.png differ 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 0000000000000000000000000000000000000000..fbb12ef35ee8cb84865550afaf9f2bd9aaa746de --- /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 683ff2da2fd68d519d04b87abf94e235cc637ac2..9fa169a9335246c1f446c15d2ab6c4197a4fe9a5 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 638e8591b41e057d8ab91d7293a48bb24e58c8e6..e8b7e5f8dd0982d64c9280f696ca6aa193f4958c 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 0000000000000000000000000000000000000000..60e57ab5c2aa520b2966c5c378ab8b1508bb10d3 --- /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 0000000000000000000000000000000000000000..fb5d77ede585ec108659df6e88eea42dec73d3ac --- /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 0000000000000000000000000000000000000000..7c28e43b0933656311b4de8e24dec62b308009cb --- /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 0000000000000000000000000000000000000000..79ce4b505332aaf2337748cb8ae57ea9503ee1f3 --- /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 0000000000000000000000000000000000000000..e7196bba20eb513d17a3634f1846a96f78a29f39 --- /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 0000000000000000000000000000000000000000..e28a345f4b7d17d2e0025e5f8e47f531f4ba6d98 --- /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 0000000000000000000000000000000000000000..05f86403bf0a9c54e02c5e86df50611caff787d5 --- /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 3ccb4d389af3eb61bf47fca40a8a3ad3ce9fb18f..c0a33b466a75648d277755b35968960599b9274b 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 0f7e0592edfe7249b5c1fb5d5aabebbc43e91f2e..ae655652bffdf06e3e91db6c790ee2cc2d0e61fb 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 47c82246738c4d056e8030d3a259206f42e8e15d..3c916180e6db67fa6e122a7e64f2d986ef3a8e68 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 0b1b093893575d411f50c5ca772ebed87339d7fc..5b5fd8c13978662e3e68598b029612a04975bb51 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 fd0ebff0110f67ca7c504899dc1e70ddc996b0b3..b53f146ffbd5e1a5a8b073197492d6193e583f61 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>