N01346254 Inderjit Singh Opening The App

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 27

N01346254 Inderjit Singh

Opening the app:


If we do not enter anything and try to add event:
(will give toast that all the fields are required)
Adding start date:
Adding time of event:
Other details about event:
Details for event to be added:
Click on Save button: (Event saved)
Camera Activity:
Click on capture button:
Image captured:
Own Intent Activity:
My security settings intent:
Source codes:
mainActivity.java
package com.inderjit.intentactivity;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.provider.MediaStore;
import android.provider.Settings;
import android.text.InputType;
import android.view.View;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class MainActivity extends AppCompatActivity {

TextView event_startDate,event_endDate;
ImageView myImage;
Calendar calender1,calender2;

EditText myEvent_title, myEvent_description, myEvent_invitions;

boolean all_day_myEvent;
DatePickerDialog.OnDateSetListener myDateListener;
Switch mySwitch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

myEvent_title = (EditText) findViewById(R.id.myCalender_title);


myEvent_description = (EditText)
findViewById(R.id.calender_event_description);

event_startDate=(TextView)findViewById(R.id.event_start_date);
event_endDate =(TextView)findViewById(R.id.event_end_date);
event_startDate.setInputType(InputType.TYPE_NULL);
event_endDate.setInputType(InputType.TYPE_NULL);
myImage = (ImageView) findViewById(R.id.img_view_photo);
myEvent_invitions = (EditText) findViewById(R.id.event_recipients);
event_startDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//getting calender instance


calender1 = Calendar.getInstance();

//getting month, time, year


int day = calender1.get(Calendar.DAY_OF_MONTH);
int month = calender1.get(Calendar.MONTH);
int year = calender1.get(Calendar.YEAR);

DatePickerDialog.OnDateSetListener dateListener = new


DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int
dayOfMonth) {
calender1.set(Calendar.YEAR,year);
calender1.set(Calendar.MONTH,month);
calender1.set(Calendar.DAY_OF_MONTH,dayOfMonth);

TimePickerDialog.OnTimeSetListener timeListener = new


TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int
minute) {
calender1.set(Calendar.HOUR_OF_DAY,hourOfDay);
calender1.set(Calendar.MINUTE,minute);

SimpleDateFormat simpleDateFormat = new


SimpleDateFormat("yyyy/MM/dd h:mm a");

event_startDate.setText(simpleDateFormat.format(calender1.getTime()));
}
};
new TimePickerDialog(MainActivity.this,timeListener,
calender1.get(Calendar.HOUR_OF_DAY), calender1.get(Calendar.MINUTE),false).show();
}

};

new
DatePickerDialog(MainActivity.this,dateListener,year,month,day).show();
}
});

event_endDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

calender2 = Calendar.getInstance();
int year = calender2.get(Calendar.YEAR);
int month = calender2.get(Calendar.MONTH);
int day = calender2.get(Calendar.DAY_OF_MONTH);

DatePickerDialog.OnDateSetListener dataListener = new


DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int
dayOfMonth) {
calender2.set(Calendar.YEAR,year);
calender2.set(Calendar.MONTH,month);
calender2.set(Calendar.DAY_OF_MONTH,dayOfMonth);

TimePickerDialog.OnTimeSetListener timeListener = new


TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int
minute) {
calender2.set(Calendar.HOUR_OF_DAY,hourOfDay);
calender2.set(Calendar.MINUTE,minute);

SimpleDateFormat simpleDateFormat = new


SimpleDateFormat("yyyy/MM/dd h:mm a");

event_endDate.setText(simpleDateFormat.format(calender2.getTime()));
}
};
new TimePickerDialog(MainActivity.this,timeListener,
calender2.get(Calendar.HOUR_OF_DAY), calender2.get(Calendar.MINUTE),false).show();
}

};

new
DatePickerDialog(MainActivity.this,dataListener,year,month,day).show();

}
});
}

public void onClickAddEvent(View view) {


String myEventTitle = myEvent_title.getText().toString();
String myEventDescription = myEvent_description.getText().toString();
String myInvitees = myEvent_invitions.getText().toString();

String eventStartDate = event_startDate.getText().toString();


String eventEndDate = event_endDate.getText().toString();

Date start = new Date();


SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd h:mm a");
try {
start = format.parse(eventStartDate);
} catch (ParseException e) {
e.printStackTrace();
}

Date end = new Date();


SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd h:mm a");
try {
end = format2.parse(eventEndDate);
} catch (ParseException e) {
e.printStackTrace();
}

long timeStart = start.getTime();


long timeEnd = end.getTime() ;

if(!myEventTitle.isEmpty()&& !myEventDescription.isEmpty()
&& !myInvitees.isEmpty() && !eventStartDate.isEmpty()
&& !eventEndDate.isEmpty() ) {

if(eventStartDate =="Start Date" || eventEndDate == "End Date")


{
Toast.makeText(this, "Provide start and end date for event",
Toast.LENGTH_SHORT).show();
}else
{

addEvent(myEventTitle,myEventDescription,myInvitees,timeStart,timeEnd,
all_day_myEvent);
}

}else
{
Toast.makeText(this, "All of the details are necessary",
Toast.LENGTH_SHORT).show();

}
}

public void onClickCheckBox(View view) {

boolean isChecked = ((CheckBox) view).isChecked();

switch(view.getId()) {
case R.id.checkbox_whole_day_event:
if (isChecked)
{
all_day_myEvent = true;
}
else
all_day_myEvent = false;
break;
}
}

public void onClickAddImage(View view) {

permissionForCameraAccess();
}
private void permissionForCameraAccess() {
if(ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this,new String[]
{Manifest.permission.CAMERA}, 101);
}else
{
startCapturing();
}
}

private void startCapturing() {


//start intent for camera
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

try {
startActivityForResult(intent, 1);
} catch (ActivityNotFoundException e) {
//some error message
}

}
public void addEvent(String title, String description, String invitees,long
begin, long end,boolean all_day_event) {

Intent myEventIntent = new Intent(Intent.ACTION_INSERT);


mySwitch = (Switch)findViewById(R.id.visibility);
myEventIntent.putExtra(CalendarContract.Events.TITLE, title);
myEventIntent.setData(CalendarContract.Events.CONTENT_URI);
myEventIntent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, all_day_event);
myEventIntent.putExtra(CalendarContract.Events.DESCRIPTION, description);
myEventIntent.putExtra(myEventIntent.EXTRA_EMAIL, invitees);
myEventIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, begin);
myEventIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, end);

//switch access --public or private

if (mySwitch.isChecked()) {
myEventIntent.putExtra(CalendarContract.Events.ACCESS_LEVEL,
CalendarContract.Events.ACCESS_PUBLIC);

} else {
myEventIntent.putExtra(CalendarContract.Events.ACCESS_LEVEL,
CalendarContract.Events.ACCESS_PRIVATE);

//start activity if not null


if (myEventIntent.resolveActivity(getPackageManager()) != null) {
startActivity(myEventIntent);
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[]
permissions, @NonNull int[] grantResults) {
if(requestCode == 101)
{
if(grantResults.length>0 &&
grantResults[0]==PackageManager.PERMISSION_GRANTED)
{
startCapturing();
}else
{
Toast.makeText(this,"No camera Permission
",Toast.LENGTH_SHORT).show();
}
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
Bundle dataExtras = data.getExtras();
Bitmap bitmap = (Bitmap) dataExtras.get("data");
myImage.setImageBitmap(bitmap);
}
}

//My own setting intent

public void onClickMySetting(View view) {

mySettings();
}

public void mySettings() {

//adding security settings


Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}

MainActivity.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
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_height="match_parent"
android:layout_width="match_parent"
android:outlineAmbientShadowColor="#e4ecbf">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#f3f9dc"
>

<EditText
android:id="@+id/myCalender_title"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="Title of Event"
android:paddingStart="12dp"
android:gravity="center"
android:maxLines="1"
android:paddingEnd="12dp"
android:background="@drawable/custom_input"
android:shadowColor="#c6d97f"
android:textSize="20dp"
android:textColor="#373f1a"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/event_start_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Start Date"
android:layout_marginTop="20dp"
android:textSize="13dp"
android:textColor="#373f1a"
android:layout_marginLeft="30dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/myCalender_title" />

<TextView
android:id="@+id/event_end_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textSize="13dp"
android:hint="End Date"
android:textColor="#373f1a"
android:layout_marginRight="30dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/myCalender_title" />

<TextView
android:id="@+id/public_private_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Private Event?"
android:textColor="#373f1a"
android:layout_marginTop="20dp"
android:textSize="20dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/visibility"
app:layout_constraintTop_toBottomOf="@id/event_end_date"/>

<Switch
android:id="@+id/visibility"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="public"

android:textOff="private"
app:showText="true"
app:layout_constraintLeft_toRightOf="@id/public_private_view"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/event_end_date" />
/>
<EditText
android:id="@+id/calender_event_description"
android:layout_width="300dp"
android:layout_height="25dp"
android:hint="Event Description"
android:gravity="center"
android:paddingStart="12dp"
android:textColor="#373f1a"
android:paddingEnd="12dp"
android:background="@drawable/custom_input"
android:shadowColor="#e4ecbf"

android:layout_marginTop="20dp"
android:textSize="20dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/public_private_view" />

<EditText
android:id="@+id/event_recipients"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:gravity="center"
android:hint="Event Recepients"
android:paddingStart="12dp"

android:paddingEnd="12dp"
android:layout_marginTop="20dp"
android:background="@drawable/custom_input"
android:shadowColor="#e4ecbf"
android:textSize="20dp"
android:textColor="#373f1a"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/calender_event_description" />

<CheckBox android:id="@+id/checkbox_whole_day_event"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check if All Day Event"
android:layout_marginTop="30dp"
android:textSize="20dp"
android:textColor="#373f1a"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:onClick="onClickCheckBox"
app:layout_constraintTop_toBottomOf="@id/event_recipients"/>

<Button
android:id="@+id/btn_add_event"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickAddEvent"
android:layout_marginTop="20dp"
android:padding="10dp"
android:text="Add Event"
android:textColor="#FFFFFF"
android:textSize="17dp"
android:background="@drawable/custom_button"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/checkbox_whole_day_event" />

<TextView
android:id="@+id/line_separater1"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="10dp"
android:background="#000000"
android:layout_marginBottom="10dp"
app:layout_constraintTop_toBottomOf="@id/btn_add_event"
/>
<Button
android:id="@+id/btn_capture_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Capture Image"
android:padding="10dp"
android:onClick="onClickAddImage"
android:textColor="#FFFFFF"
android:textSize="17dp"
android:background="@drawable/custom_button"
android:layout_marginTop="20dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_separater1" />
<ImageView
android:id="@+id/img_view_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher_background"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="20dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_capture_image"/>
<TextView
android:id="@+id/line_separater2"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="10dp"
android:background="#000000"
android:layout_marginBottom="10dp"
app:layout_constraintTop_toBottomOf="@id/img_view_photo"
/>
<TextView
android:id="@+id/TV_mysettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click on my settings :"
app:layout_constraintLeft_toLeftOf="parent"
android:textSize="17dp"
android:layout_marginTop="20dp"
android:textColor="#373f1a"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_separater2"/>

<Button
android:id="@+id/btn_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Setting"
android:padding="10dp"
android:layout_marginTop="20dp"
android:textColor="#FFFFFF"
android:textSize="17dp"
android:background="@drawable/custom_button"
android:onClick="onClickMySetting"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/TV_mysettings"
/>

</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.inderjit.intentactivity">
<uses-permission android:name="android.permission.CAMERA"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.media.action.IMAGE_CAPTURE" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

Drawables:
Button:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#bdc586" />
<corners android:radius="10dp"/>
</shape>

Text Field:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_focused="true">
<shape android:shape="rectangle"><solid android:color="@android:color/white"/>
<corners android:radius="10dp"/>

</shape>
</item>

<item android:state_enabled="true">
<shape android:shape="rectangle"><solid
android:color="@android:color/white"/>
<corners android:radius="10dp"/>
<stroke android:color="@android:color/darker_gray" android:width="1dp"/>
</shape>
</item>
</selector>

You might also like