├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── chhabra │ │ └── shriya │ │ └── mytasks │ │ └── ExampleInstrumentedTest.java │ ├── debug │ └── res │ │ └── values │ │ └── google_maps_api.xml │ ├── main │ ├── AndroidManifest.xml │ ├── ic_launcher_done-web.png │ ├── java │ │ └── chhabra │ │ │ └── shriya │ │ │ └── mytasks │ │ │ ├── Adapters │ │ │ ├── EmptyRecyclerView.java │ │ │ └── TaskRecyclerAdapter.java │ │ │ ├── AddItemActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── MapsActivity.java │ │ │ ├── Models │ │ │ └── Task.java │ │ │ ├── Services │ │ │ └── MyService.java │ │ │ └── db │ │ │ ├── Consts.java │ │ │ ├── Tables │ │ │ └── TaskTable.java │ │ │ └── TaskDatabaseHelper.java │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_action_add.png │ │ ├── ic_action_clock.png │ │ ├── ic_action_date.png │ │ ├── ic_action_location.png │ │ ├── ic_action_map.png │ │ ├── ic_action_notify.png │ │ ├── ic_action_range.png │ │ ├── ic_drawable_marker.png │ │ ├── ic_menu_del.png │ │ └── ic_menu_edit.png │ │ ├── drawable-mdpi │ │ ├── ic_action_add.png │ │ ├── ic_action_clock.png │ │ ├── ic_action_date.png │ │ ├── ic_action_location.png │ │ ├── ic_action_map.png │ │ ├── ic_action_notify.png │ │ ├── ic_action_range.png │ │ ├── ic_drawable_marker.png │ │ ├── ic_menu_del.png │ │ └── ic_menu_edit.png │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable-xhdpi │ │ ├── ic_action_add.png │ │ ├── ic_action_clock.png │ │ ├── ic_action_date.png │ │ ├── ic_action_location.png │ │ ├── ic_action_map.png │ │ ├── ic_action_notify.png │ │ ├── ic_action_range.png │ │ ├── ic_drawable_marker.png │ │ ├── ic_menu_del.png │ │ └── ic_menu_edit.png │ │ ├── drawable-xxhdpi │ │ ├── ic_action_add.png │ │ ├── ic_action_clock.png │ │ ├── ic_action_date.png │ │ ├── ic_action_location.png │ │ ├── ic_action_map.png │ │ ├── ic_action_notify.png │ │ ├── ic_action_range.png │ │ ├── ic_drawable_marker.png │ │ ├── ic_menu_del.png │ │ └── ic_menu_edit.png │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_add_item.xml │ │ ├── activity_date_time.xml │ │ ├── activity_main.xml │ │ ├── activity_maps.xml │ │ ├── content_main.xml │ │ └── task_item.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── release │ └── res │ │ └── values │ │ └── google_maps_api.xml │ └── test │ └── java │ └── chhabra │ └── shriya │ └── mytasks │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /README.md: -------------------------------------------------------------------------------- 1 | "# myTasks" 2 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 26 5 | defaultConfig { 6 | applicationId "chhabra.shriya.mytasks" 7 | minSdkVersion 21 8 | targetSdkVersion 26 9 | versionCode 1 10 | versionName "1.0" 11 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | implementation fileTree(dir: 'libs', include: ['*.jar']) 23 | implementation 'com.android.support:appcompat-v7:26.1.0' 24 | implementation 'com.android.support.constraint:constraint-layout:1.0.2' 25 | implementation 'com.android.support:design:26.1.0' 26 | implementation 'com.google.android.gms:play-services-maps:11.8.0' 27 | implementation 'com.google.android.gms:play-services-places:11.8.0' 28 | implementation 'com.google.android.gms:play-services-location:11.8.0' 29 | testImplementation 'junit:junit:4.12' 30 | androidTestImplementation 'com.android.support.test:runner:1.0.1' 31 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' 32 | } 33 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/androidTest/java/chhabra/shriya/mytasks/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("chhabra.shriya.mytasks", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/debug/res/values/google_maps_api.xml: -------------------------------------------------------------------------------- 1 | 2 | 23 | 24 | AIzaSyCozO7t0TmFTYBj4zoCCrrHDL587dwv1r0 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 14 | 17 | 18 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 32 | 35 | 36 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/src/main/ic_launcher_done-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/ic_launcher_done-web.png -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/Adapters/EmptyRecyclerView.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks.Adapters; 2 | 3 | /** 4 | * Created by aarnavjindal on 14/01/18. 5 | */ 6 | import android.content.Context; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.util.AttributeSet; 9 | import android.view.View; 10 | 11 | /** 12 | * Created by aarnavjindal on 23/12/17. 13 | */ 14 | public class EmptyRecyclerView extends RecyclerView { 15 | 16 | private View emptyView; 17 | 18 | final private AdapterDataObserver observer = new AdapterDataObserver() { 19 | @Override 20 | public void onChanged() { 21 | checkIfEmpty(); 22 | } 23 | 24 | @Override 25 | public void onItemRangeInserted(int positionStart, int itemCount) { 26 | checkIfEmpty(); 27 | } 28 | 29 | @Override 30 | public void onItemRangeRemoved(int positionStart, int itemCount) { 31 | checkIfEmpty(); 32 | } 33 | }; 34 | 35 | public EmptyRecyclerView(Context context) { 36 | super(context); 37 | } 38 | 39 | public EmptyRecyclerView(Context context, AttributeSet attrs) { 40 | super(context, attrs); 41 | } 42 | 43 | public EmptyRecyclerView(Context context, AttributeSet attrs, 44 | int defStyle) { 45 | super(context, attrs, defStyle); 46 | } 47 | 48 | void checkIfEmpty() { 49 | if (emptyView != null && getAdapter() != null) { 50 | final boolean emptyViewVisible = 51 | getAdapter().getItemCount() == 0; 52 | emptyView.setVisibility(emptyViewVisible ? VISIBLE : GONE); 53 | setVisibility(emptyViewVisible ? GONE : VISIBLE); 54 | } 55 | } 56 | 57 | @Override 58 | public void setAdapter(Adapter adapter) { 59 | final Adapter oldAdapter = getAdapter(); 60 | if (oldAdapter != null) { 61 | oldAdapter.unregisterAdapterDataObserver(observer); 62 | } 63 | super.setAdapter(adapter); 64 | if (adapter != null) { 65 | adapter.registerAdapterDataObserver(observer); 66 | } 67 | 68 | checkIfEmpty(); 69 | } 70 | 71 | public void setEmptyView(View emptyView) { 72 | this.emptyView = emptyView; 73 | checkIfEmpty(); 74 | } 75 | } -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/Adapters/TaskRecyclerAdapter.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks.Adapters; 2 | 3 | import android.content.Context; 4 | import android.content.Intent; 5 | import android.graphics.Paint; 6 | import android.support.v7.widget.RecyclerView; 7 | import android.util.Log; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | import java.util.ArrayList; 14 | 15 | import chhabra.shriya.mytasks.MapsActivity; 16 | import chhabra.shriya.mytasks.Models.Task; 17 | import chhabra.shriya.mytasks.R; 18 | 19 | /** 20 | * Created by LENOVO on 1/10/2018. 21 | */ 22 | 23 | public class TaskRecyclerAdapter extends EmptyRecyclerView.Adapter{ 24 | private Context context; 25 | private ArrayList tasks; 26 | private View.OnClickListener ocl; 27 | 28 | public TaskRecyclerAdapter(final Context context,final ArrayList task,final RecyclerView recyclerView) { 29 | this.context=context; 30 | this.tasks=task; 31 | ocl = new View.OnClickListener() { 32 | @Override 33 | public void onClick(View view) { 34 | final int pos = recyclerView.getChildAdapterPosition(view); 35 | Intent i = new Intent(context,MapsActivity.class); 36 | i.putExtra("name",tasks.get(pos).getTaskName()); 37 | context.startActivity(i); 38 | } 39 | }; 40 | } 41 | 42 | public void setArray(ArrayList tasks){ 43 | this.tasks = tasks; 44 | notifyDataSetChanged(); 45 | } 46 | 47 | @Override 48 | public CourseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 49 | LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 50 | View itemView = li.inflate(viewType, parent, false); 51 | itemView.setOnClickListener(ocl); 52 | return new CourseViewHolder(itemView); 53 | } 54 | 55 | @Override 56 | public int getItemViewType(int position) { 57 | return R.layout.task_item; 58 | } 59 | 60 | @Override 61 | public void onBindViewHolder(CourseViewHolder holder, int position) { 62 | Task currtask=tasks.get(position); 63 | holder.TaskName.setText(currtask.getTaskName()); 64 | Log.d("TAG",currtask.getTaskName()+" "+currtask.isDone()); 65 | if(currtask.isDone()) 66 | holder.TaskName.setPaintFlags(holder.TaskName.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 67 | holder.TaskPlace.setText(currtask.getPlaceAddress()); 68 | } 69 | 70 | @Override 71 | public int getItemCount() { 72 | return tasks.size(); 73 | } 74 | 75 | 76 | public class CourseViewHolder extends RecyclerView.ViewHolder { 77 | TextView TaskName,TaskPlace; 78 | 79 | public CourseViewHolder(View itemView) { 80 | super(itemView); 81 | TaskName=itemView.findViewById(R.id.task_item_name); 82 | TaskPlace=itemView.findViewById(R.id.task_item_place); 83 | } 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/AddItemActivity.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks; 2 | 3 | import android.Manifest; 4 | import android.app.Activity; 5 | import android.app.AlertDialog; 6 | import android.app.PendingIntent; 7 | import android.content.Intent; 8 | import android.content.pm.PackageManager; 9 | import android.database.sqlite.SQLiteDatabase; 10 | import android.graphics.Color; 11 | import android.graphics.drawable.ColorDrawable; 12 | import android.support.design.widget.Snackbar; 13 | import android.support.design.widget.TextInputEditText; 14 | import android.support.v4.app.ActivityCompat; 15 | import android.support.v7.app.AppCompatActivity; 16 | import android.os.Bundle; 17 | import android.util.Log; 18 | import android.view.LayoutInflater; 19 | import android.view.MenuItem; 20 | import android.view.View; 21 | import android.widget.Button; 22 | import android.widget.EditText; 23 | import android.widget.ImageView; 24 | import android.widget.LinearLayout; 25 | import android.widget.Switch; 26 | import android.widget.TextView; 27 | import android.widget.Toast; 28 | 29 | import com.google.android.gms.common.GooglePlayServicesNotAvailableException; 30 | import com.google.android.gms.common.GooglePlayServicesRepairableException; 31 | import com.google.android.gms.common.GooglePlayServicesUtil; 32 | import com.google.android.gms.location.Geofence; 33 | import com.google.android.gms.location.GeofencingClient; 34 | import com.google.android.gms.location.GeofencingRequest; 35 | import com.google.android.gms.location.places.ui.PlacePicker; 36 | import com.google.android.gms.maps.model.LatLng; 37 | 38 | import chhabra.shriya.mytasks.Models.Task; 39 | import chhabra.shriya.mytasks.Services.MyService; 40 | import chhabra.shriya.mytasks.db.Tables.TaskTable; 41 | import chhabra.shriya.mytasks.db.TaskDatabaseHelper; 42 | 43 | public class AddItemActivity extends AppCompatActivity { 44 | 45 | TextView place_name; 46 | Switch swtch; 47 | ImageView imageMap; 48 | Button addTask; 49 | EditText range_m; 50 | TextInputEditText task_name; 51 | Boolean ischecked; 52 | String TaskName; 53 | String placeName, remRange; 54 | double longitude = 0, latitude = 0; 55 | android.support.v7.app.AlertDialog dialog; 56 | 57 | @Override 58 | protected void onCreate(Bundle savedInstanceState) { 59 | super.onCreate(savedInstanceState); 60 | setContentView(R.layout.activity_add_item); 61 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 62 | task_name = findViewById(R.id.task_name); 63 | range_m = findViewById(R.id.range_m); 64 | addTask = findViewById(R.id.addTask); 65 | place_name = findViewById(R.id.place); 66 | swtch = findViewById(R.id.swtch); 67 | imageMap = findViewById(R.id.imageMap); 68 | TaskDatabaseHelper myDBHelper = new TaskDatabaseHelper(this); 69 | final SQLiteDatabase writeDb = myDBHelper.getWritableDatabase(); 70 | 71 | addTask.setOnClickListener(new View.OnClickListener() { 72 | @Override 73 | public void onClick(View view) { 74 | ischecked = swtch.isChecked(); 75 | TaskName = task_name.getText().toString(); 76 | placeName = place_name.getText().toString(); 77 | remRange = range_m.getText().toString(); 78 | int r = Integer.valueOf(remRange); 79 | if (!TaskName.equals("") && !placeName.equals("") && !remRange.equals("")) { 80 | Task t = new Task(TaskName, placeName, r, longitude, latitude, ischecked, false); 81 | Log.d("TAG", TaskName + ":" + placeName + ":" + r + ":" + longitude + ":" + latitude + ":" + ischecked); 82 | TaskTable.insertTask(t, writeDb); 83 | Intent i = new Intent(AddItemActivity.this, MyService.class); 84 | i.putExtra("name", TaskName); 85 | if (ActivityCompat.checkSelfPermission(AddItemActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 86 | return; 87 | } 88 | new GeofencingClient(AddItemActivity.this).addGeofences(new GeofencingRequest.Builder(). 89 | addGeofence(new Geofence.Builder() 90 | .setRequestId(TaskName) 91 | .setCircularRegion(latitude,longitude,r) 92 | .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT) 93 | .setExpirationDuration(Geofence.NEVER_EXPIRE) 94 | .build()) 95 | .setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER) 96 | .build(), PendingIntent.getService(AddItemActivity.this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT) 97 | ); 98 | finish(); 99 | } 100 | } 101 | }); 102 | imageMap.setOnClickListener(new View.OnClickListener() { 103 | @Override 104 | public void onClick(View view) { 105 | try { 106 | PlacePicker.IntentBuilder intentBuilder = new PlacePicker.IntentBuilder(); 107 | Intent intent = intentBuilder.build(AddItemActivity.this); 108 | startActivityForResult(intent, 100); 109 | 110 | } catch (GooglePlayServicesRepairableException e) { 111 | GooglePlayServicesUtil 112 | .getErrorDialog(e.getConnectionStatusCode(),AddItemActivity.this, 0); 113 | } catch (GooglePlayServicesNotAvailableException e) { 114 | Toast.makeText(AddItemActivity.this, "Google Play Services is not available.", 115 | Toast.LENGTH_LONG) 116 | .show(); 117 | } 118 | } 119 | }); 120 | View loaderView = ((LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE)).inflate(R.layout.activity_date_time,null); 121 | dialog = new android.support.v7.app.AlertDialog.Builder(this) 122 | .setView(loaderView) 123 | .create(); 124 | 125 | findViewById(R.id.task_date).setOnClickListener(new View.OnClickListener() { 126 | @Override 127 | public void onClick(View view) { 128 | dialog.show(); 129 | dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 130 | } 131 | }); 132 | } 133 | 134 | @Override 135 | public boolean onOptionsItemSelected(MenuItem item) { 136 | int id = item.getItemId(); 137 | switch (id){ 138 | case android.R.id.home: 139 | onBackPressed(); 140 | break; 141 | } 142 | return true; 143 | } 144 | 145 | @Override 146 | public void onActivityResult(int requestCode, int resultCode, Intent data) { 147 | if (requestCode == 100) { 148 | if (resultCode == Activity.RESULT_OK) { 149 | com.google.android.gms.location.places.Place place = PlacePicker.getPlace(data, this); 150 | CharSequence name = place.getName(); 151 | LatLng ll = place.getLatLng(); 152 | longitude = ll.longitude; 153 | latitude = ll.latitude; 154 | place_name.setText(name.toString()); 155 | } else { 156 | super.onActivityResult(requestCode, resultCode, data); 157 | } 158 | } 159 | } 160 | } -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/MainActivity.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks; 2 | 3 | import android.content.Intent; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.os.Bundle; 6 | import android.support.design.widget.FloatingActionButton; 7 | import android.support.v7.app.AppCompatActivity; 8 | import android.support.v7.widget.LinearLayoutManager; 9 | import android.support.v7.widget.RecyclerView; 10 | import android.support.v7.widget.Toolbar; 11 | import android.util.Log; 12 | import android.view.View; 13 | 14 | import java.util.ArrayList; 15 | 16 | import chhabra.shriya.mytasks.Adapters.EmptyRecyclerView; 17 | import chhabra.shriya.mytasks.Adapters.TaskRecyclerAdapter; 18 | import chhabra.shriya.mytasks.Models.Task; 19 | import chhabra.shriya.mytasks.db.Tables.TaskTable; 20 | import chhabra.shriya.mytasks.db.TaskDatabaseHelper; 21 | 22 | public class MainActivity extends AppCompatActivity { 23 | public static ArrayList tasks=new ArrayList<>(); 24 | SQLiteDatabase readDb; 25 | TaskRecyclerAdapter tra; 26 | @Override 27 | protected void onCreate(Bundle savedInstanceState) { 28 | super.onCreate(savedInstanceState); 29 | setContentView(R.layout.activity_main); 30 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 31 | setSupportActionBar(toolbar); 32 | 33 | FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 34 | fab.setOnClickListener(new View.OnClickListener() { 35 | @Override 36 | public void onClick(View view) { 37 | Intent i= new Intent(MainActivity.this,AddItemActivity.class); 38 | startActivity(i); 39 | } 40 | }); 41 | 42 | TaskDatabaseHelper myDbHelper= new TaskDatabaseHelper(this); 43 | readDb = myDbHelper.getReadableDatabase(); 44 | 45 | EmptyRecyclerView rv=findViewById(R.id.rv); 46 | tra= new TaskRecyclerAdapter(this,tasks,rv); 47 | rv.setLayoutManager(new LinearLayoutManager(this)); 48 | rv.setAdapter(tra); 49 | rv.setEmptyView(findViewById(R.id.empty)); 50 | } 51 | 52 | @Override 53 | protected void onStart() { 54 | super.onStart(); 55 | tasks = TaskTable.getAllTasks(readDb); 56 | tra.setArray(tasks); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/MapsActivity.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks; 2 | 3 | import android.Manifest; 4 | import android.content.pm.PackageManager; 5 | import android.location.Location; 6 | import android.location.LocationListener; 7 | import android.location.LocationManager; 8 | import android.support.v4.app.ActivityCompat; 9 | import android.support.v4.app.FragmentActivity; 10 | import android.os.Bundle; 11 | import android.support.v7.app.AppCompatActivity; 12 | import android.util.Log; 13 | import android.view.Menu; 14 | import android.view.MenuItem; 15 | import android.view.View; 16 | import android.widget.Button; 17 | import android.widget.Switch; 18 | import android.widget.TextView; 19 | 20 | import com.google.android.gms.maps.CameraUpdateFactory; 21 | import com.google.android.gms.maps.GoogleMap; 22 | import com.google.android.gms.maps.OnMapReadyCallback; 23 | import com.google.android.gms.maps.SupportMapFragment; 24 | import com.google.android.gms.maps.model.BitmapDescriptor; 25 | import com.google.android.gms.maps.model.LatLng; 26 | import com.google.android.gms.maps.model.MarkerOptions; 27 | 28 | import chhabra.shriya.mytasks.Models.Task; 29 | import chhabra.shriya.mytasks.db.Tables.TaskTable; 30 | import chhabra.shriya.mytasks.db.TaskDatabaseHelper; 31 | 32 | public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback { 33 | 34 | private GoogleMap mMap; 35 | private Task task; 36 | private TextView place_name, dist; 37 | private Switch notify; 38 | private Button btn; 39 | 40 | @Override 41 | protected void onCreate(Bundle savedInstanceState) { 42 | super.onCreate(savedInstanceState); 43 | setContentView(R.layout.activity_maps); 44 | 45 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 46 | String name = getIntent().getStringExtra("name"); 47 | final TaskDatabaseHelper helper = new TaskDatabaseHelper(this); 48 | 49 | task = TaskTable.getTask(helper.getReadableDatabase(), name); 50 | getSupportActionBar().setTitle(task.getTaskName()); 51 | place_name = findViewById(R.id.place_name); 52 | dist = findViewById(R.id.dist); 53 | notify = findViewById(R.id.notify); 54 | btn = findViewById(R.id.btn); 55 | 56 | place_name.setText(task.getPlaceAddress()); 57 | notify.setChecked(task.getNotification()); 58 | if(task.isDone()) 59 | btn.setText("Mark as undone"); 60 | else 61 | btn.setText("Mark as done"); 62 | btn.setOnClickListener(new View.OnClickListener() { 63 | @Override 64 | public void onClick(View view) { 65 | Log.d("TAG",task.getTaskName()+" "+task.isDone()); 66 | TaskTable.flipDone(helper.getWritableDatabase(),task.getTaskName(),!task.isDone()); 67 | task.setDone(!task.isDone()); 68 | if(task.isDone()) 69 | btn.setText("Mark as undone"); 70 | else 71 | btn.setText("Mark as done"); 72 | } 73 | }); 74 | LocationManager manager = (LocationManager) getSystemService(LOCATION_SERVICE); 75 | LocationListener locLis = new LocationListener() { 76 | @Override 77 | public void onLocationChanged(Location location) { 78 | Location l = new Location(""); 79 | l.setLatitude(task.getLatitude()); 80 | l.setLongitude(task.getLongitude()); 81 | float d = location.distanceTo(new Location(l)); 82 | dist.setText(d+"m away"); 83 | } 84 | 85 | @Override 86 | public void onStatusChanged(String provider, int status, Bundle extras) { 87 | } 88 | 89 | @Override 90 | public void onProviderEnabled(String provider) { 91 | } 92 | 93 | @Override 94 | public void onProviderDisabled(String provider) { 95 | } 96 | }; 97 | 98 | if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED 99 | && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 100 | return; 101 | } 102 | manager.requestLocationUpdates( 103 | LocationManager.NETWORK_PROVIDER, 104 | 1000, 105 | 10, 106 | locLis 107 | ); 108 | 109 | SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 110 | .findFragmentById(R.id.map); 111 | mapFragment.getMapAsync(this); 112 | } 113 | 114 | @Override 115 | public void onMapReady(GoogleMap googleMap) { 116 | mMap = googleMap; 117 | LatLng loc = new LatLng(task.getLatitude(),task.getLongitude()); 118 | mMap.addMarker(new MarkerOptions().position(loc).title(task.getPlaceAddress())); 119 | mMap.moveCamera(CameraUpdateFactory.newLatLng(loc)); 120 | } 121 | 122 | @Override 123 | public boolean onCreateOptionsMenu(Menu menu) { 124 | getMenuInflater().inflate(R.menu.menu_main, menu); 125 | return true; 126 | } 127 | 128 | @Override 129 | public boolean onOptionsItemSelected(MenuItem item) { 130 | int id = item.getItemId(); 131 | switch (id){ 132 | case android.R.id.home: 133 | onBackPressed(); 134 | break; 135 | } 136 | return true; 137 | } 138 | } 139 | -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/Models/Task.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks.Models; 2 | 3 | /** 4 | * Created by LENOVO on 1/10/2018. 5 | */ 6 | 7 | public class Task { 8 | private String taskName; 9 | private String placeAddress; 10 | private int radius; 11 | private double latitude; 12 | private double longitude; 13 | private boolean notification; 14 | private boolean done; 15 | 16 | public Task(){} 17 | public Task(String taskName, String placeAddress, int radius, double latitude,double longitude, boolean notify,boolean done) { 18 | this.taskName=taskName; 19 | this.placeAddress=placeAddress; 20 | this.radius=radius; 21 | this.latitude=latitude; 22 | this.longitude=longitude; 23 | this.notification=notify; 24 | this.done = done; 25 | } 26 | 27 | public String getTaskName() { 28 | return taskName; 29 | } 30 | 31 | public String getPlaceAddress() { 32 | return placeAddress; 33 | } 34 | 35 | public int getRadius() { 36 | return radius; 37 | } 38 | 39 | public double getLatitude() { 40 | return latitude; 41 | } 42 | 43 | public double getLongitude() { 44 | return longitude; 45 | } 46 | 47 | public boolean getNotification() { 48 | return notification; 49 | } 50 | 51 | public boolean isDone() { 52 | return done; 53 | } 54 | 55 | public void setDone(boolean done) { 56 | this.done = done; 57 | } 58 | 59 | public void setTaskName(String taskName) { 60 | this.taskName = taskName; 61 | } 62 | 63 | public void setPlaceAddress(String placeAddress) { 64 | this.placeAddress = placeAddress; 65 | } 66 | 67 | public void setRadius(int radius) { 68 | this.radius = radius; 69 | } 70 | 71 | public void setLatitude(double latitude) { 72 | this.latitude = latitude; 73 | } 74 | 75 | public void setLongitude(double longitude) { 76 | this.longitude = longitude; 77 | } 78 | 79 | public void setNotification(boolean notification) { 80 | this.notification = notification; 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/Services/MyService.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks.Services; 2 | 3 | import android.app.Service; 4 | import android.content.Intent; 5 | import android.os.IBinder; 6 | 7 | import android.app.IntentService; 8 | import android.app.NotificationManager; 9 | import android.content.Context; 10 | import android.graphics.Color; 11 | import android.support.v4.app.NotificationCompat; 12 | 13 | import chhabra.shriya.mytasks.Models.Task; 14 | import chhabra.shriya.mytasks.R; 15 | import chhabra.shriya.mytasks.db.Tables.TaskTable; 16 | import chhabra.shriya.mytasks.db.TaskDatabaseHelper; 17 | 18 | public class MyService extends IntentService { 19 | 20 | public MyService() { 21 | super("MyService"); 22 | } 23 | 24 | @Override 25 | protected void onHandleIntent(Intent intent) { 26 | TaskDatabaseHelper helper=new TaskDatabaseHelper(this); 27 | Task evnt= TaskTable.getTask(helper.getReadableDatabase(),intent.getStringExtra("name")); 28 | 29 | NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 30 | 31 | // Define the notification settings. 32 | builder.setSmallIcon(R.mipmap.ic_launcher) 33 | .setColor(Color.RED) 34 | .setContentTitle("Task Notifier : Task proximity reminder") 35 | .setContentText(evnt.getTaskName()+'\n'+evnt.getPlaceAddress()); 36 | // Dismiss notification once the user touches it. 37 | builder.setAutoCancel(true); 38 | 39 | // Get an instance of the Notification manager 40 | NotificationManager mNotificationManager = 41 | (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 42 | 43 | // Issue the notification 44 | mNotificationManager.notify(0, builder.build()); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/db/Consts.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks.db; 2 | 3 | /** 4 | * Created by LENOVO on 1/12/2018. 5 | */ 6 | 7 | public interface Consts { 8 | 9 | String COMMA = " , "; 10 | String LBR = " ( "; 11 | String RBR = " ) "; 12 | String SEMI = " ; "; 13 | 14 | String CMD_CREATE_TABLE_INE = " CREATE TABLE IF NOT EXISTS "; 15 | 16 | String TYPE_INT = " INTEGER "; 17 | String TYPE_DOUBLE=" REAL "; 18 | String TYPE_TEXT = " TEXT "; 19 | String TYPE_BOOLEAN = " BOOLEAN "; 20 | String TYPE_PK_AI = " PRIMARY KEY AUTOINCREMENT "; 21 | } -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/db/Tables/TaskTable.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks.db.Tables; 2 | 3 | import android.content.ContentValues; 4 | import android.database.Cursor; 5 | import android.database.sqlite.SQLiteDatabase; 6 | import android.util.Log; 7 | 8 | import java.util.ArrayList; 9 | 10 | import chhabra.shriya.mytasks.Models.Task; 11 | import chhabra.shriya.mytasks.db.Consts; 12 | 13 | import static chhabra.shriya.mytasks.db.Consts.*; 14 | /** 15 | * Created by LENOVO on 1/12/2018. 16 | */ 17 | 18 | public class TaskTable { 19 | 20 | private TaskTable() { 21 | } 22 | 23 | public static final String Table_Name="taskTable"; 24 | 25 | public interface Columns { 26 | String ID="id"; 27 | String TaskName= "name"; 28 | String Address= "address"; 29 | String Radius = "radius"; 30 | String Latitude="latitude"; 31 | String Longitude="longitude"; 32 | String Notification="notification"; 33 | String Done = "done"; 34 | } 35 | 36 | public static final String CMD_CREATE_TABLE = 37 | CMD_CREATE_TABLE_INE + Table_Name 38 | + LBR 39 | + Columns.ID + TYPE_INT + TYPE_PK_AI + COMMA 40 | + Columns.TaskName + TYPE_TEXT + COMMA 41 | + Columns.Address + TYPE_TEXT + COMMA 42 | + Columns.Radius + TYPE_INT + COMMA 43 | + Columns.Latitude + TYPE_DOUBLE + COMMA 44 | + Columns.Longitude + TYPE_DOUBLE + COMMA 45 | + Columns.Notification + TYPE_BOOLEAN + COMMA 46 | + Columns.Done + TYPE_BOOLEAN 47 | + RBR ; 48 | 49 | public static long insertTask(Task t, SQLiteDatabase db) { 50 | ContentValues newTask= new ContentValues(); 51 | newTask.put(Columns.TaskName,t.getTaskName()); 52 | newTask.put(Columns.Address,t.getPlaceAddress()); 53 | newTask.put(Columns.Radius,t.getRadius()); 54 | newTask.put(Columns.Latitude,t.getLatitude()); 55 | newTask.put(Columns.Longitude,t.getLongitude()); 56 | newTask.put(Columns.Notification,t.getNotification()); 57 | newTask.put(Columns.Done,t.isDone()); 58 | return db.insert(Table_Name,null,newTask); 59 | } 60 | 61 | public static Task getTask(SQLiteDatabase db,String name){ 62 | Task task=new Task(); 63 | Cursor cur=db.query( 64 | Table_Name, 65 | new String[]{Columns.TaskName,Columns.Address,Columns.Radius,Columns.Latitude,Columns.Longitude,Columns.Notification,Columns.Done}, 66 | Columns.TaskName +" = \""+name+"\"", 67 | null,null,null,null 68 | ); 69 | cur.moveToFirst(); 70 | task.setTaskName(name); 71 | task.setDone(cur.getInt(cur.getColumnIndex(Columns.Done))>0); 72 | task.setLatitude(cur.getLong(cur.getColumnIndex(Columns.Latitude))); 73 | task.setLongitude(cur.getLong(cur.getColumnIndex(Columns.Longitude))); 74 | task.setNotification(cur.getInt(cur.getColumnIndex(Columns.Notification))>0); 75 | task.setPlaceAddress(cur.getString(cur.getColumnIndex(Columns.Address))); 76 | task.setRadius(cur.getInt(cur.getColumnIndex(Columns.Radius))); 77 | cur.close(); 78 | return task; 79 | } 80 | 81 | public static void flipDone(SQLiteDatabase db,String name,Boolean type){ 82 | Log.d("TAG",name+" "+type); 83 | ContentValues values = new ContentValues(); 84 | values.put(Columns.Done,type); 85 | db.update( 86 | Table_Name, 87 | values, 88 | Columns.TaskName +" = \""+name+"\"", 89 | null 90 | ); 91 | } 92 | 93 | public static ArrayList getAllTasks(SQLiteDatabase db) 94 | { 95 | Cursor c=db.query( 96 | Table_Name, 97 | new String[]{Columns.TaskName,Columns.Address,Columns.Radius, 98 | Columns.Latitude,Columns.Longitude,Columns.Notification,Columns.Done}, 99 | null, 100 | null, 101 | null, 102 | null, 103 | null 104 | ); 105 | 106 | ArrayList allTasks= new ArrayList<>(); 107 | c.moveToFirst(); 108 | 109 | int idIndex=c.getColumnIndex(Columns.ID); 110 | int TaskNameIndex=c.getColumnIndex(Columns.TaskName); 111 | int AddressIndex=c.getColumnIndex(Columns.Address); 112 | int RadiusIndex=c.getColumnIndex(Columns.Radius); 113 | int LatitudeIndex=c.getColumnIndex(Columns.Latitude); 114 | int LongitudeIndex=c.getColumnIndex(Columns.Longitude); 115 | int NotiIndex=c.getColumnIndex(Columns.Notification); 116 | int DoneIndex = c.getColumnIndex(Columns.Done); 117 | 118 | while (!c.isAfterLast()) { 119 | allTasks.add(new Task( 120 | c.getString(TaskNameIndex), 121 | c.getString(AddressIndex), 122 | c.getInt(RadiusIndex), 123 | c.getDouble(LatitudeIndex), 124 | c.getDouble(LongitudeIndex), 125 | c.getInt(NotiIndex)==1, 126 | c.getInt(DoneIndex) > 0 127 | )); 128 | c.moveToNext(); 129 | } 130 | c.close(); 131 | return allTasks; 132 | } 133 | } -------------------------------------------------------------------------------- /app/src/main/java/chhabra/shriya/mytasks/db/TaskDatabaseHelper.java: -------------------------------------------------------------------------------- 1 | package chhabra.shriya.mytasks.db; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.database.sqlite.SQLiteOpenHelper; 6 | import android.util.Log; 7 | 8 | import chhabra.shriya.mytasks.db.Tables.TaskTable; 9 | 10 | /** 11 | * Created by LENOVO on 1/12/2018. 12 | */ 13 | 14 | public class TaskDatabaseHelper extends SQLiteOpenHelper { 15 | 16 | public static final String DB_NAME = "todo.db"; 17 | public static final int DB_VER = 1; 18 | 19 | public TaskDatabaseHelper(Context context) { 20 | super(context, DB_NAME,null, DB_VER); 21 | } 22 | 23 | @Override 24 | public void onCreate(SQLiteDatabase sqLiteDatabase) { 25 | sqLiteDatabase.execSQL(TaskTable.CMD_CREATE_TABLE); 26 | } 27 | 28 | @Override 29 | public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_action_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_action_clock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_action_date.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_action_location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_action_map.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_action_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_action_range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_action_range.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_drawable_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_drawable_marker.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_menu_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_menu_del.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_menu_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-hdpi/ic_menu_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_action_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_action_clock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_action_date.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_action_location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_action_map.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_action_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_action_range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_action_range.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_drawable_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_drawable_marker.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_menu_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_menu_del.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_menu_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-mdpi/ic_menu_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_action_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_action_clock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_action_date.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_action_location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_action_map.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_action_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_action_range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_action_range.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawable_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_drawable_marker.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_menu_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_menu_del.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_menu_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xhdpi/ic_menu_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_action_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_action_clock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_date.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_action_date.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_action_location.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_action_map.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_action_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_action_range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_action_range.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_drawable_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_drawable_marker.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_menu_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_menu_del.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_menu_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devaar100/Task-Manager/10ab4a4ac23927041916a4f8d8ca5f0e6a2913f4/app/src/main/res/drawable-xxhdpi/ic_menu_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_add_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 21 | 22 | 23 | 30 | 35 | 36 | 42 | 43 | 44 | 52 | 53 | 60 | 64 | 70 | 78 | 79 | 80 | 85 | 89 | 95 | 99 | 100 | 101 | 106 | 110 | 117 | 123 | 124 |