Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.seesharp.app.sample;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.Locale;
- import android.app.DatePickerDialog;
- import android.app.NotificationManager;
- import android.app.PendingIntent;
- import android.app.TimePickerDialog;
- import android.content.Context;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.content.SharedPreferences.Editor;
- import android.os.Build;
- import android.os.Bundle;
- import android.preference.PreferenceManager;
- import android.support.annotation.RequiresApi;
- import android.support.v7.app.AppCompatActivity;
- import android.support.v7.app.NotificationCompat;
- import android.text.TextUtils;
- import android.util.Log;
- import android.view.Menu;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.EditText;
- import android.widget.ListView;
- import android.widget.TextClock;
- import android.widget.TimePicker;
- import android.widget.Toast;
- public class MainActivity extends AppCompatActivity implements View.OnClickListener {
- private static final int MY_NOTIFICATION_ID = 12345;
- private static final int MY_REQUEST_CODE = 100;
- TextClock TextClockId;
- ArrayList<String> items = new ArrayList<>(), items1 = new ArrayList<>();
- ArrayAdapter<String> adapter, adapter1;
- ListView l, l1;
- EditText et, editText2;
- Button mAdd, mDelete, btn_date, btn_time;
- SharedPreferences prfs, prf1s;
- public static final String MY_PREFS_NAME = "MyPrefsFile";
- Editor edit, edit1;
- Calendar dateTime = Calendar.getInstance();
- private Calendar cCarlendar = Calendar.getInstance();
- private SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy h:mm aa", Locale.ENGLISH);
- @RequiresApi(api = Build.VERSION_CODES.KITKAT)
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //''this.requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.activity_main);
- initialize();
- prfs = PreferenceManager.getDefaultSharedPreferences(this);
- prf1s = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
- edit = prfs.edit();
- edit1 = prf1s.edit();
- adapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, items);
- adapter1 = new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, items1);
- l.setAdapter(adapter);
- l1.setAdapter(adapter1);
- mDelete.setOnClickListener(this);
- mAdd.setOnClickListener(this);
- for (int i = 0; i < prfs.getInt("counter", 0); i++) {
- items.add(0, prfs.getString(String.valueOf(i), "null"));
- }
- adapter.notifyDataSetChanged();
- for (int j = 0; j < prf1s.getInt("counter1", 0); j++) {
- items1.add(0, prf1s.getString(String.valueOf(j), "null"));
- }
- adapter1.notifyDataSetChanged();
- editText2.setEnabled(false);
- btn_date.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- updateDate();
- }
- });
- btn_time.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- updateTime();
- }
- });
- Thread t = new Thread(){
- @Override
- public void run(){
- try{
- while(!isInterrupted()){
- Thread.sleep(1000);
- runOnUiThread(new Runnable(){
- @Override
- public void run(){
- //Ambil waktu event, then tolak 15 minit. Lepas tu dapat balik date baru (date yg dah ditolak 15 minit),
- //then compare je balik dgn waktu skrg
- Date curDate = new Date();
- for(String dateString: items1){
- try {
- cCarlendar.setTime(format.parse(dateString));
- cCarlendar.add(Calendar.MINUTE, -15);
- if(format.format(cCarlendar.getTime()).equals(format.format(curDate))){
- //same date and time found
- sendNotification(items.get(items1.indexOf(dateString)));
- }
- Log.i("Check Date", "Event Date - 15:"+format.format(cCarlendar.getTime())+", Current Date: "+format.format(curDate));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
- }
- });
- }
- } catch (InterruptedException e){
- e.printStackTrace();
- }
- }
- }; t.start();
- }
- private void initialize() {
- btn_date = (Button) findViewById(R.id.datepicker);
- btn_time = (Button) findViewById(R.id.timepicker);
- editText2 = (EditText) findViewById(R.id.editText2);
- et = (EditText) findViewById(R.id.editText1);
- mAdd = (Button) findViewById(R.id.button1);
- mDelete = (Button) findViewById(R.id.button2);
- TextClockId = (TextClock) findViewById(R.id.TextClockId);
- l = (ListView) findViewById(R.id.listView1);
- l1 = (ListView) findViewById(R.id.listView2);
- }
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- switch (arg0.getId()) {
- case R.id.button1:
- addItem();
- break;
- case R.id.button2:
- adapter.clear();
- edit.clear();
- edit.commit();
- // finish();
- adapter1.clear();
- edit1.clear();
- edit1.commit();
- break;
- }
- }
- private void addItem() {
- if (!TextUtils.isEmpty(et.getText().toString())) {
- edit.putString(String.valueOf(items.size()), et.getText().toString());
- edit.putInt("counter", adapter.getCount() + 1);
- edit.commit();
- items.add(0, et.getText().toString());
- adapter.notifyDataSetChanged();
- et.setText("");
- } else {
- Toast.makeText(getBaseContext(), "Field should not be empty!",
- Toast.LENGTH_LONG).show();
- }
- if (!TextUtils.isEmpty(editText2.getText().toString())) {
- edit1.putString(String.valueOf(items1.size()), editText2.getText().toString());
- edit1.putInt("counter1", adapter1.getCount() + 1);
- edit1.commit();
- items1.add(0, editText2.getText().toString());
- adapter1.notifyDataSetChanged();
- editText2.setText("");
- } else {
- Toast.makeText(getBaseContext(), "Field should not be empty!",
- Toast.LENGTH_LONG).show();
- }
- }
- private void DeleteItem() {
- if (!("".equals(et.getText().toString()))) {
- //ob = et.getText().toString();
- adapter.notifyDataSetChanged();
- edit.remove(String.valueOf(adapter.getCount()));
- edit.putInt("counter", adapter.getCount() + 1);
- edit.commit();
- et.setText("");
- } else {
- Toast.makeText(getBaseContext(), "Field should not be empty!",
- Toast.LENGTH_LONG).show();
- }
- }
- private void updateDate() {
- new DatePickerDialog(this, d, dateTime.get(Calendar.YEAR), dateTime.get(Calendar.MONTH), dateTime.get(Calendar.DAY_OF_MONTH)).show();
- }
- private void updateTime() {
- new TimePickerDialog(this, t, dateTime.get(Calendar.HOUR_OF_DAY), dateTime.get(Calendar.MINUTE), true).show();
- }
- DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
- @Override
- public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
- dateTime.set(Calendar.YEAR, year);
- dateTime.set(Calendar.MONTH, monthOfYear);
- dateTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
- updateTextLabel();
- }
- };
- TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
- @Override
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
- dateTime.set(Calendar.MINUTE, minute);
- dateTime.set(Calendar.SECOND, 0);
- updateTextLabel();
- }
- };
- private void updateTextLabel() {
- String mq = format.format(dateTime.getTime());
- //String mq1 = format.format(mq);
- editText2.setText(mq);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- //getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- public void sendNotification(String msg) {
- Intent intent = new Intent(getApplicationContext(), MainActivity.class);
- PendingIntent pIntent = PendingIntent.getActivity(this,
- MY_REQUEST_CODE, intent, 0);
- NotificationCompat.Builder mBuilder =
- (NotificationCompat.Builder) new NotificationCompat.Builder(getApplicationContext())
- .setSmallIcon(R.mipmap.ic_launcher)
- .setContentTitle("REMINDER!!")
- .setContentText(msg)
- .setAutoCancel(true)
- .setContentIntent(pIntent);
- NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- notificationManager.notify(MY_NOTIFICATION_ID, mBuilder.build());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement