OVIDIUS University of Constant a [616596]

Ministry of National Education
"OVIDIUS" University of Constant a
Faculty of Mathematics and Computer Science
Degree Program: Computer Science
Home Assistant for Elderly People
Scienti c Adviser:
Conf. dr. Pelican Elena
Student: [anonimizat] a
2018

Outline
Outline 1
1 Solutions 2
2 Application 11
3 Future works 12
1

Chapter 1
Solutions
Reminder
package o v i d i u s . univ . myapplication ;
public c l a s s ReminderActivity extends AppCompatActivity f
p r i v a t e RecyclerView mList ;
p r i v a t e SimpleAdapter mAdapter ;
p r i v a t e Toolbar mToolbar ;
p r i v a t e TextView mNoReminderView ;
p r i v a t e FloatingActionButton mAddReminderButton ;
p r i v a t e i n t mTempPost ;
p r i v a t e LinkedHashMap <Integer , Integer >IDmap = new LinkedHashMap <>();
p r i v a t e ReminderDatabase rb ;
p r i v a t e Mu l ti Se l ec t or mMultiSelector = new Mu lt i Se le c to r ( ) ;
p r i v a t e AlarmReciever mAlarmReceiver ;
@Override
protected void onCreate ( Bundle savedInstanceState ) f
super . onCreate ( savedInstanceState ) ;
setContentView (R. layout . a c ti v it y m ai n ) ;
rb = new ReminderDatabase ( getApplicationContext ( ) ) ;
mToolbar = ( Toolbar ) findViewById (R. id . toolbar ) ;
mAddReminderButton = ( FloatingActionButton ) findViewById (R. id . add reminder ) ;
mList = ( RecyclerView ) findViewById (R. id . r e m i n d e r l i s t ) ;
mNoReminderView = ( TextView ) findViewById (R. id . no reminder text ) ;
List<Reminder >mTest = rb . getAllReminders ( ) ;
i f ( mTest . isEmpty ( ) ) f
mNoReminderView . s e t V i s i b i l i t y ( View . VISIBLE ) ;
g
2

Solutions Solutions
mList . setLayoutManager ( getLayoutManager ( ) ) ;
registerForContextMenu ( mList ) ;
mAdapter = new SimpleAdapter ( ) ;
mAdapter . setItemCount ( getDefaultItemCount ( ) ) ;
mList . setAdapter ( mAdapter ) ;
setSupportActionBar ( mToolbar ) ;
mToolbar . s e t T i t l e (R. s t r i n g . app name ) ;
mAddReminderButton . setOnClickListener (new View . OnClickListener ( ) f
@Override
public void onClick ( View v ) f
Intent i n t e n t = new Intent ( v . getContext ( ) , ReminderAddActivity . c l a s s ) ;
s t a r t A c t i v i t y ( i n t e n t ) ;
g
g) ;
mAlarmReceiver = new AlarmReciever ( ) ;
g
@Override
public void onCreateContextMenu ( ContextMenu menu , View v , ContextMenu . ContextMenuInfo menuInfo ) f
getMenuInflater ( ) . i n f l a t e (R. menu . menu add reminder , menu ) ;
g
p r i v a t e android . support . v7 . view . ActionMode . Callback mDeleteMode = new ModalMultiSelectorCallback ( mMultiSelector ) f
@Override
public boolean onCreateActionMode ( android . support . v7 . view . ActionMode actionMode , Menu menu) f
getMenuInflater ( ) . i n f l a t e (R. menu . menu add reminder , menu ) ;
return true ;
g
@Override
public boolean onActionItemClicked ( android . support . v7 . view . ActionMode actionMode , MenuItem menuItem ) f
switch ( menuItem . getItemId ( ) ) f
case R. id . discard reminder :
actionMode . f i n i s h ( ) ;
f o r ( i n t i = IDmap . s i z e ( ) ; i >= 0 ; i)f
i f ( mMultiSelector . i s S e l e c t e d ( i , 0)) f
i n t id = IDmap . get ( i ) ;
Reminder temp = rb . getReminder ( id ) ;
rb . deleteReminder ( temp ) ;
3

Solutions Solutions
mAdapter . removeItemSelected ( i ) ;
mAlarmReceiver . cancelAlarm ( getApplicationContext ( ) , id ) ;
g
g
mMultiSelector . c l e a r S e l e c t i o n s ( ) ;
mAdapter . onDeleteItem ( getDefaultItemCount ( ) ) ;
Toast . makeText ( getApplicationContext ( ) ,
" Deleted " ,
Toast .LENGTH SHORT) . show ( ) ;
List<Reminder >mTest = rb . getAllReminders ( ) ;
i f ( mTest . isEmpty ( ) ) f
mNoReminderView . s e t V i s i b i l i t y ( View . VISIBLE ) ;
ge l s ef
mNoReminderView . s e t V i s i b i l i t y ( View .GONE) ;
g
return true ;
case R. id . save reminder :
actionMode . f i n i s h ( ) ;
mMultiSelector . c l e a r S e l e c t i o n s ( ) ;
return true ;
d e f a u l t :
break ;
g
return f a l s e ;
g
g;
p r i v a t e void selectReminder ( i n t mClickID ) f
String mStringClickID = I n t e g e r . to Str ing ( mClickID ) ;
Intent i = new Intent ( this , ReminderEditActivity . c l a s s ) ;
i . putExtra ( ReminderEditActivity .EXTRA REMINDER ID, mStringClickID ) ;
s t a r t A c t i v i t y F o r R e s u l t ( i , 1 ) ;
g
@Override
public void onActivityResult ( i n t requestCode , i n t resultCode , Intent data ) f
mAdapter . setItemCount ( getDefaultItemCount ( ) ) ;
g
4

Solutions Solutions
@Override
public void onResume () f
super . onResume ( ) ;
List<Reminder >mTest = rb . getAllReminders ( ) ;
i f ( mTest . isEmpty ( ) ) f
mNoReminderView . s e t V i s i b i l i t y ( View . VISIBLE ) ;
ge l s ef
mNoReminderView . s e t V i s i b i l i t y ( View .GONE) ;
g
mAdapter . setItemCount ( getDefaultItemCount ( ) ) ;
g
protected RecyclerView . LayoutManager getLayoutManager ( ) f
return new LinearLayoutManager ( this , LinearLayoutManager .VERTICAL, f a l s e ) ;
g
protected i n t getDefaultItemCount ( ) f
return 100;
g
@Override
public boolean onCreateOptionsMenu (Menu menu) f
getMenuInflater ( ) . i n f l a t e (R. menu . main menu , menu ) ;
return true ;
g
public c l a s s SimpleAdapter extends RecyclerView . Adapter <SimpleAdapter . VerticalItemHolder >f
p r i v a t e ArrayList <ReminderItem >mItems ;
public SimpleAdapter ( ) f
mItems = new ArrayList <>();
g
public void setItemCount ( i n t count ) f
mItems . c l e a r ( ) ;
mItems . addAll ( generateData ( count ) ) ;
notifyDataSetChanged ( ) ;
g
public void onDeleteItem ( i n t count ) f
5

Solutions Solutions
mItems . c l e a r ( ) ;
mItems . addAll ( generateData ( count ) ) ;
g
public void removeItemSelected ( i n t s e l e c t e d ) f
i f ( mItems . isEmpty ( ) ) return ;
mItems . remove ( s e l e c t e d ) ;
notifyItemRemoved ( s e l e c t e d ) ;
g
@Override
public VerticalItemHolder onCreateViewHolder ( ViewGroup container , i n t viewType ) f
L a y ou t I n f la t e r i n f l a t e r = L a y o u tI n f l a te r . from ( container . getContext ( ) ) ;
View root = i n f l a t e r . i n f l a t e (R. layout . r e c y c l e i t e m s , container , f a l s e ) ;
return new VerticalItemHolder ( root , t h i s ) ;
g
@Override
public void onBindViewHolder ( VerticalItemHolder itemHolder , i n t p o s i t i o n ) f
ReminderItem item = mItems . get ( p o s i t i o n ) ;
itemHolder . setReminderTitle ( item . mTitle ) ;
itemHolder . setReminderDateTime ( item . mDateTime ) ;
itemHolder . setReminderRepeatInfo ( item . mRepeat , item . mRepeatNo , item . mRepeatType ) ;
itemHolder . setActiveImage ( item . mActive ) ;
g
@Override
public i n t getItemCount ( ) f
return mItems . s i z e ( ) ;
g
public c l a s s ReminderItem f
public String mTitle ;
public String mDateTime ;
public String mRepeat ;
public String mRepeatNo ;
public String mRepeatType ;
public String mActive ;
public ReminderItem ( String Title , String DateTime , String Repeat , String RepeatNo , String RepeatType , String Active ) f
t h i s . mTitle = T i t l e ;
t h i s . mDateTime = DateTime ;
t h i s . mRepeat = Repeat ;
t h i s . mRepeatNo = RepeatNo ;
t h i s . mRepeatType = RepeatType ;
6

Solutions Solutions
t h i s . mActive = Active ;
g
g
public c l a s s DateTimeComparator implements Comparator f
DateFormat f = new SimpleDateFormat ("dd/m m/yyyy hh :m m" ) ;
public i n t compare ( Object a , Object b) f
String o1 = ( ( DateTimeSorter ) a ) . getDateTime ( ) ;
String o2 = ( ( DateTimeSorter )b ) . getDateTime ( ) ;
tryf
return f . parse ( o1 ) . compareTo ( f . parse ( o2 ) ) ;
gcatch ( ParseException e ) f
throw new IllegalArgumentException ( e ) ;
g
g
g
public c l a s s VerticalItemHolder extends SwappingHolder
implements View . OnClickListener , View . OnLongClickListener f
p r i v a t e TextView mTitleText , mDateAndTimeText , mRepeatInfoText ;
p r i v a t e ImageView mActiveImage , mThumbnailImage ;
p r i v a t e ColorGenerator mColorGenerator = ColorGenerator .DEFAULT;
p r i v a t e TextDrawable mDrawableBuilder ;
p r i v a t e SimpleAdapter mAdapter ;
public VerticalItemHolder ( View itemView , SimpleAdapter adapter ) f
super ( itemView , mMultiSelector ) ;
itemView . setOnClickListener ( t h i s ) ;
itemView . setOnLongClickListener ( t h i s ) ;
itemView . setLongClickable ( true ) ;
mAdapter = adapter ;
mTitleText = ( TextView ) itemView . findViewById (R. id . r e c y c l e t i t l e ) ;
mDateAndTimeText = ( TextView ) itemView . findViewById (R. id . r e c y c l e d a t e t i m e ) ;
mRepeatInfoText = ( TextView ) itemView . findViewById (R. id . r e c y c l e r e p e a t i n f o ) ;
mActiveImage = ( ImageView ) itemView . findViewById (R. id . active image ) ;
mThumbnailImage = ( ImageView ) itemView . findViewById (R. id . thumbnail image ) ;
g
@Override
public void onClick ( View v ) f
i f ( ! mMultiSelector . t a p S e l e c t i o n ( t h i s ) ) f
7

Solutions Solutions
mTempPost = mList . getChildAdapterPosition ( v ) ;
i n t mReminderClickID = IDmap . get (mTempPost ) ;
selectReminder ( mReminderClickID ) ;
ge l s e i f ( mMultiSelector . g e t S e l e c t e d P o s i t i o n s ( ) . isEmpty ( ) ) f
mAdapter . setItemCount ( getDefaultItemCount ( ) ) ;
g
g
@Override
public boolean onLongClick ( View v ) f
AppCompatActivity a c t i v i t y = MainActivity . t h i s ;
a c t i v i t y . startSupportActionMode ( mDeleteMode ) ;
mMultiSelector . s e t S e l e c t e d ( this , true ) ;
return true ;
g
public void setReminderTitle ( String t i t l e ) f
mTitleText . setText ( t i t l e ) ;
String l e t t e r = "A" ;
i f ( t i t l e != n u l l && ! t i t l e . isEmpty ( ) ) f
l e t t e r = t i t l e . s u b s t r i n g (0 , 1 ) ;
g
i n t c o l o r = mColorGenerator . getRandomColor ( ) ;
mDrawableBuilder = TextDrawable . b u i l d e r ( )
. buildRound ( l e t t e r , c o l o r ) ;
mThumbnailImage . setImageDrawable ( mDrawableBuilder ) ;
g
public void setReminderDateTime ( String datetime ) f
mDateAndTimeText . setText ( datetime ) ;
g
public void setReminderRepeatInfo ( String repeat , String repeatNo , String repeatType ) f
i f ( repeat . equals (" true ")) f
mRepeatInfoText . setText (" Every " + repeatNo + " " + repeatType + "( s ) " ) ;
ge l s e i f ( repeat . equals (" f a l s e ")) f
mRepeatInfoText . setText (" Repeat Off " ) ;
g
g
public void setActiveImage ( String a c t i v e ) f
i f ( a c t i v e . equals (" true ")) f
mActiveImage . setImageResource (R. drawable . b a s e l i n e c l e a r w h i t e 1 8 d p ) ;
8

Solutions Solutions
ge l s e i f ( a c t i v e . equals (" f a l s e ")) f
mActiveImage . setImageResource (R. drawable . baseline done white 18dp ) ;
g
g
g
public ReminderItem generateDummyData ( ) f
return new ReminderItem ("1" , "2" , "3" , "4" , "5" , " 6 " ) ;
g
public List <ReminderItem >generateData ( i n t count ) f
ArrayList <SimpleAdapter . ReminderItem >items = new ArrayList <>();
List<Reminder >reminders = rb . getAllReminders ( ) ;
List<String >T i t l e s = new ArrayList <>();
List<String >Repeats = new ArrayList <>();
List<String >RepeatNos = new ArrayList <>();
List<String >RepeatTypes = new ArrayList <>();
List<String >Actives = new ArrayList <>();
List<String >DateAndTime = new ArrayList <>();
List<Integer >IDList= new ArrayList <>();
List<DateTimeSorter >DateTimeSortList = new ArrayList <>();
f o r ( Reminder r : reminders ) f
T i t l e s . add ( r . g e t T i t l e ( ) ) ;
DateAndTime . add ( r . getDate ( ) + " " + r . getTime ( ) ) ;
Repeats . add ( r . getRepeat ( ) ) ;
RepeatNos . add ( r . getRepeatNo ( ) ) ;
RepeatTypes . add ( r . getRepeatType ( ) ) ;
Actives . add ( r . getActive ( ) ) ;
IDList . add ( r . getID ( ) ) ;
g
i n t key = 0 ;
f o r ( i n t k = 0 ; k <T i t l e s . s i z e ( ) ; k++) f
DateTimeSortList . add (new DateTimeSorter ( key , DateAndTime . get ( k ) ) ) ;
key++;
g
C o l l e c t i o n s . s o r t ( DateTimeSortList , new DateTimeComparator ( ) ) ;
i n t k = 0 ;
f o r ( DateTimeSorter item : DateTimeSortList ) f
i n t i = item . getIndex ( ) ;
items . add (new SimpleAdapter . ReminderItem ( T i t l e s . get ( i ) , DateAndTime . get ( i ) , Repeats . get ( i ) ,
RepeatNos . get ( i ) , RepeatTypes . get ( i ) , Actives . get ( i ) ) ) ;
9

Solutions Solutions
IDmap . put (k , IDList . get ( i ) ) ;
k++;
g
return items ;
g
g
g
10

Chapter 2
Application
11

Chapter 3
Future works
12

Similar Posts