0% found this document useful (0 votes)
59 views

Finalproject

The document contains code for an Android goal tracking app that includes activities for a splash screen, timer screen, view progress screen, setting new goals, and a home screen. The timer screen code handles starting and canceling a countdown timer, updating the UI with time remaining, and checking if a goal is completed when finished. The new goal activity allows the user to input a goal name, duration, and start the timer screen.

Uploaded by

Hira Fatima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Finalproject

The document contains code for an Android goal tracking app that includes activities for a splash screen, timer screen, view progress screen, setting new goals, and a home screen. The timer screen code handles starting and canceling a countdown timer, updating the UI with time remaining, and checking if a goal is completed when finished. The new goal activity allows the user to input a goal name, duration, and start the timer screen.

Uploaded by

Hira Fatima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Splashscreen.

java
package com.example.android.goaltracer.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.example.android.goaltracer.R;

public class SplashScreen extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
}
}

TimerScreen.java
package com.example.android.goaltracer.activity;

import android.content.Intent;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.example.android.goaltracer.R;

import java.util.Locale;

import static android.view.animation.Animation.RELATIVE_TO_SELF;

public class TimerScreen extends AppCompatActivity {

String r;
int myProgress = 0;
boolean b;
android.widget.ProgressBar progressBarView;
Button btn_start;
TextView tv_time;
TextView et_timer;
TextView textView4;
TextView task_name;
TextView d_field;
int progress;
int count=0 ;
CountDownTimer countDownTimer;
int endTime = 250;
private TextView mTextViewCountDown;
//Declare a variable to hold count down timer's paused status
private TextView textView;
private TextView textView1;
private TextView text;
private boolean isPaused = false;
//Declare a variable to hold count down timer's paused status
private boolean isCanceled = false;
String a;
private long mStartTimeInMillis;
private long mTimeLeftInMillis;
String message;
String message2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timer_screen);
Intent intent = getIntent();
message = intent.getStringExtra("EXTRA_MESSAGE");
textView4 = findViewById(R.id.display_message);
textView4.setText(message);

String message1 = intent.getStringExtra("EXTRA_NUMBER");


task_name = findViewById(R.id.et_timer);
task_name.setText("GOAL:"+message1);

message2 = intent.getStringExtra("EXTRA_TEXT");
d_field = findViewById(R.id.d_field);
d_field.setText("Total Duration: "+message2);
progressBarView = (android.widget.ProgressBar)
findViewById(R.id.view_progress_bar);
btn_start = (Button) findViewById(R.id.btn_start);
tv_time = (TextView) findViewById(R.id.tv_timer);
et_timer = (TextView) findViewById(R.id.et_timer);
final Button btnCancel = (Button) findViewById(R.id.btn_cancel);
mTextViewCountDown = findViewById(R.id.text_view_countdown);
textView=findViewById(R.id.text_view);
text=findViewById(R.id.text);
/*Animation*/
RotateAnimation makeVertical = new RotateAnimation(0, 180, RELATIVE_TO_SELF,
0.5f, RELATIVE_TO_SELF, 0.5f);
makeVertical.setFillAfter(true);
progressBarView.startAnimation(makeVertical);
progressBarView.setSecondaryProgress(endTime);
progressBarView.setProgress(0);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//When user request to cancel the CountDownTimer
isCanceled = true;
//Disable the cancel, pause and resume button
btnCancel.setEnabled(true);
//Enable the start button
//Notify the user that CountDownTimer is canceled/stopped
}
});
btn_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fn_countdown();
}
});
}
private void fn_countdown() {
if (textView4.getText().toString().length() > 0){//||
d_field.getText().toString().length()>0) {
myProgress = 0;
try {
countDownTimer.cancel();
} catch (Exception e) {
}
String daysInterval= d_field.getText().toString();
String timeInterval = textView4.getText().toString();
progress = 1;
/** in order to take value in hrs**/
endTime = Integer.parseInt(timeInterval) *30; // up to finish time
countDownTimer = new CountDownTimer(endTime * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
setProgress(progress, endTime);
progress = progress + 1;
int seconds = (int) (millisUntilFinished / 1000) % 60;
int minutes = (int) ((millisUntilFinished / 1000) % 3600) / 60;
int hours = (int) ((millisUntilFinished / 1000) / 3600);
String newtime = hours + ":" + minutes + ":" + seconds;
String timeLeftFormatted;
if (hours > 0) {
timeLeftFormatted = String.format(Locale.getDefault(),
"%2d:%02d:%02d", hours, minutes, seconds);
} else {
timeLeftFormatted = String.format(Locale.getDefault(),
"%2d:%02d:%02d", hours, minutes, seconds);
}
mTextViewCountDown.setText(timeLeftFormatted);
}
@Override
public void onFinish() {
// a=d_field.equals(textView);
// textView1.setText("COMPLETED"+a);
// r= a + message2;
count++;
a =String.valueOf(count);
if (a.equals(message2)) {
text.setText("YOUR GOAL IS COMPLETED" );
}
else{
int s = Integer.parseInt(a);
int t = Integer.parseInt(message2);
int sum = t-s;
text.setText("REMAINING DAYS:"+sum );
}
//the next linewill show the text of "DAY 1 OR MORE COMPLETED"
// textView.setText("DAY " + String.valueOf(count)+"COMPLETED");
// countdownTimerText.setText("TIME'S UP!!"); //On finish change timer
text
countDownTimer = null;//set CountDownTimer to null
btn_start.setText(getString(R.string.btn_start));//Change button
text
setProgress(progress, endTime);
}
};

countDownTimer.start();
} else {
Toast.makeText(getApplicationContext(), "Please enter the value",
Toast.LENGTH_LONG).show();
}
}
public void setProgress(int startTime, int endTime) {
progressBarView.setMax(endTime);
progressBarView.setSecondaryProgress(endTime);
progressBarView.setProgress(startTime);
}
}

ViewProgress.java
package com.example.android.goaltracer.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.example.android.goaltracer.R;

public class ViewProgress extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_progress);
}
}

NewGoal.Java
package com.example.android.goaltracer.activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.example.android.goaltracer.R;

public class NewGoal extends AppCompatActivity {

private Button mButtonSet;


private long mStartTimeInMillis;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_goal);
mButtonSet = findViewById(R.id.button_set);
}

public void sendMessage(View view){


EditText editText= findViewById(R.id.duration_field);
String message = editText.getText().toString();

EditText et_text= findViewById(R.id.name_field);


String messag = et_text.getText().toString();

EditText edt= findViewById(R.id.d_field);


String message1 = edt.getText().toString();

Intent intent = new Intent(this,TimerScreen.class);


intent.putExtra("EXTRA_MESSAGE",message);
intent.putExtra("EXTRA_NUMBER",messag);
intent.putExtra("EXTRA_TEXT",message1);
startActivity(intent);

}
}

HomeScreen.java
package com.example.android.goaltracer.activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import com.example.android.goaltracer.R;

public class HomeScreen extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}
public void goal(View view){
Intent intent= new Intent(this,NewGoal.class);
startActivity(intent);

}
public void progress(View view){
Intent intent= new Intent(this,ListOfGoals.class);
startActivity(intent);

}
public void list(View view){
Intent intent= new Intent(this,ViewProgress.class);
startActivity(intent);
}
}

ListOfGoals.java
package com.example.android.goaltracer.activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import com.example.android.goaltracer.R;

public class ListOfGoals extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_of_goals);
}
public void progresstrack(View view){
Intent intent= new Intent(this, ViewProgress.class);
startActivity(intent);
}
}

drawable_circuarprogressbar.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:id="@android:id/secondaryProgress">
<shape
android:shape="ring"
android:useLevel="true"
android:thicknessRatio="15" >
<solid android:color="#0f540d" />
</shape>
</item>

<item android:id="@android:id/progress">
<shape
android:shape="ring"
android:useLevel="true"
android:thicknessRatio="15" >
<solid android:color="#b2b9ad" />
</shape>
</item>

</layer-list>

drawable_greenprogress.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff9d9e9d"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:angle="270"
/>
</shape>
</item>

<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"
/>
</shape>
</clip>
</item>
<item
android:id="@android:id/progress"
>
<clip>
<shape>
<corners
android:radius="5dip" />
<gradient
android:startColor="#33FF33"
android:endColor="#008000"
android:angle="270" />
</shape>
</clip>
</item>

</layer-list>

Activity_home_screen.xml
<?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=".activity.HomeScreen">

<TextView
android:layout_width="wrap_content"
android:layout_height="51dp"
android:layout_above="@+id/ProgressBar"
android:layout_centerHorizontal="true"
android:layout_marginBottom="-139dp"
android:text="Your Progress 25%"
android:textColor="#0b1a71"
android:textSize="25dp" />
<ProgressBar
android:id="@+id/ProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="357dp"
android:layout_height="26dp"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginTop="139dp"
android:indeterminate="false"
android:maxHeight="10dip"
android:minHeight="10dip"
android:progress="25"
android:progressDrawable="@drawable/drawable_greenprogress" />

<TextView
android:layout_width="wrap_content"
android:layout_height="51dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="202dp"
android:text="3Days Remaining!"
android:textColor="#0b1a71"
android:textSize="25dp" />

<TextView
android:layout_width="317dp"
android:layout_height="77dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="152dp"
android:text="Stay Focused and keep moving towards your Goal!"
android:textColor="#0b1a71"
android:textSize="20dp" />
</RelativeLayout>

Activity_list_of_goals.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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=".activity.ListOfGoals">

</android.support.constraint.ConstraintLayout>

Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Activity_new_goal.xml
<?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=".activity.NewGoal">

<EditText
android:id="@+id/name_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:hint="Enter Task name"
android:inputType="textCapWords" />

<EditText
android:id="@+id/duration_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="35dp"
android:hint="Enter Daily duration" />

<EditText
android:id="@+id/d_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="74dp"
android:hint="Enter Total days" />

<EditText
android:id="@+id/name_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="111dp"
android:hint="Enter Task name"
android:inputType="textCapWords" />

<Button
android:id="@+id/button_set"
android:layout_width="124dp"
android:layout_height="48dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="34dp"
android:onClick="sendMessage"
android:text="SET"
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="7dp" />

</RelativeLayout>

Activity_splash_screen.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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=".activity.SplashScreen">

</android.support.constraint.ConstraintLayout>
Activity_timer_screen.xml
<?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=".activity.TimerScreen">

<TextView
android:id="@+id/et_timer"
android:layout_width="241dp"
android:layout_height="wrap_content"
android:layout_above="@+id/display_message"
android:layout_centerHorizontal="true"
android:hint="Enter your task"
android:textSize="20dp"
android:textColor="#80050d"
/>

<TextView
android:id="@+id/display_message"
android:layout_width="168dp"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tView"
android:layout_toEndOf="@+id/tView"
android:hint=""
android:inputType="number"
android:textColor="#80050d"
android:textSize="20dp" />

<TextView
android:id="@+id/d_field"
android:layout_width="274dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/et_timer"
android:layout_marginTop="78dp"
android:hint="Enter Total duration"
android:inputType="number"
android:textSize="20dp"
android:textColor="#80050d"
/>

<TextView
android:id="@+id/text"
android:layout_width="259dp"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/et_timer"
android:layout_below="@+id/textView1"
android:textColor="#80050d"
android:textSize="20dp" />

<TextView
android:id="@+id/text_view_countdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="198dp"
android:text="00:00"
android:textColor="@android:color/black"
android:textSize="30sp" />

<ProgressBar
android:id="@+id/view_progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginBottom="86dp"
android:progressDrawable="@drawable/drawable_circularprogressbar" />

<TextView
android:id="@+id/tv_timer"
android:layout_width="74dp"
android:layout_height="0dp"
android:layout_centerInParent="true" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_start"
android:text="Start"
android:layout_alignParentBottom="true"/>

<Button
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:onClick="stop"
android:text="Stop" />

<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="33dp"
android:text=""
android:textColor="@android:color/black"
android:textSize="30sp" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/d_field"
android:layout_marginStart="112dp"
android:text="" />

<TextView
android:id="@+id/tView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/d_field"
android:layout_alignStart="@+id/et_timer"
android:layout_marginBottom="-78dp"
android:text="Daily Time: "
android:textSize="20dp"
android:textColor="#80050d"
/>
</RelativeLayout>

Activity_view_progress.xml
<?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=".activity.ViewProgress">

<TextView
android:layout_width="wrap_content"
android:layout_height="51dp"
android:layout_above="@+id/ProgressBar"
android:layout_centerHorizontal="true"
android:layout_marginBottom="-139dp"
android:text="Your Progress 25%"
android:textColor="#0b1a71"
android:textSize="25dp" />
<ProgressBar
android:id="@+id/ProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="357dp"
android:layout_height="26dp"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginTop="139dp"
android:indeterminate="false"
android:maxHeight="10dip"
android:minHeight="10dip"
android:progress="25"
android:progressDrawable="@drawable/drawable_greenprogress" />

<TextView
android:layout_width="wrap_content"
android:layout_height="51dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="202dp"
android:text="3Days Remaining!"
android:textColor="#0b1a71"
android:textSize="25dp" />

<TextView
android:layout_width="317dp"
android:layout_height="77dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="152dp"
android:text="Stay Focused and keep moving towards your Goal!"
android:textColor="#0b1a71"
android:textSize="20dp" />
</RelativeLayout>

Strings.xml
<resources>
<string name="app_name">GoalTracer</string>
<string name="btn_start">Start Timer</string>

</resources>

Colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>

Styles.xml
<resources>

<!-- Base application theme. -->


<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

</resources>

You might also like