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
Scientic 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
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: OVIDIUS University of Constant a [616596] (ID: 616596)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
