Initial commit.
authorRadek Czajka <radekczajka@nowoczesnapolska.org.pl>
Mon, 12 Jan 2015 11:37:02 +0000 (12:37 +0100)
committerRadek Czajka <radekczajka@nowoczesnapolska.org.pl>
Mon, 12 Jan 2015 11:37:02 +0000 (12:37 +0100)
449 files changed:
AndroidManifest.xml [new file with mode: 0644]
ic_launcher-web.png [new file with mode: 0644]
libs/android-support-v4.jar [new file with mode: 0644]
libs/listviewanimations_lib-core_3.1.0.jar [new file with mode: 0644]
libs/nineoldandroids-2.4.0.jar [new file with mode: 0644]
license.txt [new file with mode: 0644]
lint.xml [new file with mode: 0644]
proguard-project.txt [new file with mode: 0644]
project.properties [new file with mode: 0644]
res/anim/fadein.xml [new file with mode: 0644]
res/anim/fadeout.xml [new file with mode: 0644]
res/anim/slide_right.xml [new file with mode: 0644]
res/drawable-hdpi/btn_co_moge_normal.png [new file with mode: 0644]
res/drawable-hdpi/btn_co_moge_pressed.png [new file with mode: 0644]
res/drawable-hdpi/btn_legenda_normal.png [new file with mode: 0644]
res/drawable-hdpi/btn_legenda_pressed.png [new file with mode: 0644]
res/drawable-hdpi/btn_odinstaluj_normal.png [new file with mode: 0644]
res/drawable-hdpi/btn_odinstaluj_pressed.png [new file with mode: 0644]
res/drawable-hdpi/btn_ok_normal.png [new file with mode: 0755]
res/drawable-hdpi/btn_ok_pressed.png [new file with mode: 0755]
res/drawable-hdpi/btn_powrot_normal.png [new file with mode: 0644]
res/drawable-hdpi/btn_powrot_pressed.png [new file with mode: 0644]
res/drawable-hdpi/btn_ustawienia_normal.png [new file with mode: 0644]
res/drawable-hdpi/btn_ustawienia_pressed.png [new file with mode: 0644]
res/drawable-hdpi/btn_wiecej_info_normal.png [new file with mode: 0644]
res/drawable-hdpi/btn_wiecej_info_pressed.png [new file with mode: 0644]
res/drawable-hdpi/drawer_shadow.9.png [new file with mode: 0644]
res/drawable-hdpi/ic_broke.png [new file with mode: 0755]
res/drawable-hdpi/ic_broke_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_broke_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_call.png [new file with mode: 0755]
res/drawable-hdpi/ic_call_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_call_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_call_history.png [new file with mode: 0755]
res/drawable-hdpi/ic_call_history_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_call_history_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_communication.png [new file with mode: 0755]
res/drawable-hdpi/ic_communication_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_communication_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_cyber_profile.png [new file with mode: 0755]
res/drawable-hdpi/ic_cyber_profile_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_cyber_profile_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_data_sending.png [new file with mode: 0755]
res/drawable-hdpi/ic_data_sending_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_data_sending_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_data_transmission.png [new file with mode: 0755]
res/drawable-hdpi/ic_data_transmission_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_data_transmission_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_device.png [new file with mode: 0755]
res/drawable-hdpi/ic_device_control.png [new file with mode: 0755]
res/drawable-hdpi/ic_device_control_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_device_control_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_device_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_device_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_device_drawer.png [new file with mode: 0755]
res/drawable-hdpi/ic_disturb.png [new file with mode: 0755]
res/drawable-hdpi/ic_disturb_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_disturb_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_drawer.png [new file with mode: 0644]
res/drawable-hdpi/ic_files.png [new file with mode: 0755]
res/drawable-hdpi/ic_files_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_files_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_files_edit.png [new file with mode: 0755]
res/drawable-hdpi/ic_files_edit_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_files_edit_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_launcher.png [new file with mode: 0644]
res/drawable-hdpi/ic_location.png [new file with mode: 0755]
res/drawable-hdpi/ic_location_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_location_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_profile_drawer.png [new file with mode: 0755]
res/drawable-hdpi/ic_sms.png [new file with mode: 0755]
res/drawable-hdpi/ic_sms_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_sms_disable.png [new file with mode: 0755]
res/drawable-hdpi/ic_system.png [new file with mode: 0644]
res/drawable-hdpi/ic_system_dark.png [new file with mode: 0644]
res/drawable-hdpi/ic_system_disable.png [new file with mode: 0644]
res/drawable-hdpi/ic_system_red.png [new file with mode: 0644]
res/drawable-hdpi/ic_system_red_dark.png [new file with mode: 0644]
res/drawable-hdpi/ic_system_red_disable.png [new file with mode: 0644]
res/drawable-hdpi/ic_wallet_drawer.png [new file with mode: 0755]
res/drawable-hdpi/ic_warning_drawer.png [new file with mode: 0755]
res/drawable-hdpi/ic_wiretapping.png [new file with mode: 0755]
res/drawable-hdpi/ic_wiretapping_dark.png [new file with mode: 0755]
res/drawable-hdpi/ic_wiretapping_disable.png [new file with mode: 0755]
res/drawable-hdpi/img_welcome_screen.png [new file with mode: 0755]
res/drawable-hdpi/logo_fnp.png [new file with mode: 0755]
res/drawable-hdpi/logo_maic.png [new file with mode: 0755]
res/drawable-hdpi/logo_samsung.png [new file with mode: 0755]
res/drawable-ldpi/btn_co_moge_normal.png [new file with mode: 0644]
res/drawable-ldpi/btn_co_moge_pressed.png [new file with mode: 0644]
res/drawable-ldpi/btn_legenda_normal.png [new file with mode: 0644]
res/drawable-ldpi/btn_legenda_pressed.png [new file with mode: 0644]
res/drawable-ldpi/btn_odinstaluj_normal.png [new file with mode: 0644]
res/drawable-ldpi/btn_odinstaluj_pressed.png [new file with mode: 0644]
res/drawable-ldpi/btn_ok_normal.png [new file with mode: 0755]
res/drawable-ldpi/btn_ok_pressed.png [new file with mode: 0755]
res/drawable-ldpi/btn_powrot_normal.png [new file with mode: 0644]
res/drawable-ldpi/btn_powrot_pressed.png [new file with mode: 0644]
res/drawable-ldpi/btn_ustawienia_normal.png [new file with mode: 0644]
res/drawable-ldpi/btn_ustawienia_pressed.png [new file with mode: 0644]
res/drawable-ldpi/btn_wiecej_info_normal.png [new file with mode: 0644]
res/drawable-ldpi/btn_wiecej_info_pressed.png [new file with mode: 0644]
res/drawable-ldpi/ic_broke.png [new file with mode: 0755]
res/drawable-ldpi/ic_broke_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_broke_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_call.png [new file with mode: 0755]
res/drawable-ldpi/ic_call_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_call_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_call_history.png [new file with mode: 0755]
res/drawable-ldpi/ic_call_history_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_call_history_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_communication.png [new file with mode: 0755]
res/drawable-ldpi/ic_communication_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_communication_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_cyber_profile.png [new file with mode: 0755]
res/drawable-ldpi/ic_cyber_profile_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_cyber_profile_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_data_sending.png [new file with mode: 0755]
res/drawable-ldpi/ic_data_sending_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_data_sending_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_data_transmission.png [new file with mode: 0755]
res/drawable-ldpi/ic_data_transmission_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_data_transmission_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_device.png [new file with mode: 0755]
res/drawable-ldpi/ic_device_control.png [new file with mode: 0755]
res/drawable-ldpi/ic_device_control_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_device_control_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_device_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_device_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_device_drawer.png [new file with mode: 0755]
res/drawable-ldpi/ic_disturb.png [new file with mode: 0755]
res/drawable-ldpi/ic_disturb_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_disturb_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_files.png [new file with mode: 0755]
res/drawable-ldpi/ic_files_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_files_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_files_edit.png [new file with mode: 0755]
res/drawable-ldpi/ic_files_edit_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_files_edit_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_launcher.png [new file with mode: 0644]
res/drawable-ldpi/ic_location.png [new file with mode: 0755]
res/drawable-ldpi/ic_location_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_location_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_profile_drawer.png [new file with mode: 0755]
res/drawable-ldpi/ic_sms.png [new file with mode: 0755]
res/drawable-ldpi/ic_sms_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_sms_disable.png [new file with mode: 0755]
res/drawable-ldpi/ic_system.png [new file with mode: 0644]
res/drawable-ldpi/ic_system_dark.png [new file with mode: 0644]
res/drawable-ldpi/ic_system_disable.png [new file with mode: 0644]
res/drawable-ldpi/ic_system_red.png [new file with mode: 0644]
res/drawable-ldpi/ic_system_red_dark.png [new file with mode: 0644]
res/drawable-ldpi/ic_system_red_disable.png [new file with mode: 0644]
res/drawable-ldpi/ic_wallet_drawer.png [new file with mode: 0755]
res/drawable-ldpi/ic_warning_drawer.png [new file with mode: 0755]
res/drawable-ldpi/ic_wiretapping.png [new file with mode: 0755]
res/drawable-ldpi/ic_wiretapping_dark.png [new file with mode: 0755]
res/drawable-ldpi/ic_wiretapping_disable.png [new file with mode: 0755]
res/drawable-ldpi/img_welcome_screen.png [new file with mode: 0755]
res/drawable-ldpi/logo_fnp.png [new file with mode: 0755]
res/drawable-ldpi/logo_maic.png [new file with mode: 0755]
res/drawable-ldpi/logo_samsung.png [new file with mode: 0755]
res/drawable-mdpi/btn_co_moge_normal.png [new file with mode: 0644]
res/drawable-mdpi/btn_co_moge_pressed.png [new file with mode: 0644]
res/drawable-mdpi/btn_legenda_normal.png [new file with mode: 0644]
res/drawable-mdpi/btn_legenda_pressed.png [new file with mode: 0644]
res/drawable-mdpi/btn_odinstaluj_normal.png [new file with mode: 0644]
res/drawable-mdpi/btn_odinstaluj_pressed.png [new file with mode: 0644]
res/drawable-mdpi/btn_ok_normal.png [new file with mode: 0755]
res/drawable-mdpi/btn_ok_pressed.png [new file with mode: 0755]
res/drawable-mdpi/btn_powrot_normal.png [new file with mode: 0644]
res/drawable-mdpi/btn_powrot_pressed.png [new file with mode: 0644]
res/drawable-mdpi/btn_ustawienia_normal.png [new file with mode: 0644]
res/drawable-mdpi/btn_ustawienia_pressed.png [new file with mode: 0644]
res/drawable-mdpi/btn_wiecej_info_normal.png [new file with mode: 0644]
res/drawable-mdpi/btn_wiecej_info_pressed.png [new file with mode: 0644]
res/drawable-mdpi/drawer_shadow.9.png [new file with mode: 0644]
res/drawable-mdpi/ic_broke.png [new file with mode: 0755]
res/drawable-mdpi/ic_broke_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_broke_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_call.png [new file with mode: 0755]
res/drawable-mdpi/ic_call_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_call_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_call_history.png [new file with mode: 0755]
res/drawable-mdpi/ic_call_history_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_call_history_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_communication.png [new file with mode: 0755]
res/drawable-mdpi/ic_communication_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_communication_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_cyber_profile.png [new file with mode: 0755]
res/drawable-mdpi/ic_cyber_profile_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_cyber_profile_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_data_sending.png [new file with mode: 0755]
res/drawable-mdpi/ic_data_sending_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_data_sending_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_data_transmission.png [new file with mode: 0755]
res/drawable-mdpi/ic_data_transmission_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_data_transmission_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_device.png [new file with mode: 0755]
res/drawable-mdpi/ic_device_control.png [new file with mode: 0755]
res/drawable-mdpi/ic_device_control_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_device_control_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_device_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_device_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_device_drawer.png [new file with mode: 0755]
res/drawable-mdpi/ic_disturb.png [new file with mode: 0755]
res/drawable-mdpi/ic_disturb_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_disturb_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_drawer.png [new file with mode: 0644]
res/drawable-mdpi/ic_files.png [new file with mode: 0755]
res/drawable-mdpi/ic_files_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_files_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_files_edit.png [new file with mode: 0755]
res/drawable-mdpi/ic_files_edit_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_files_edit_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_launcher.png [new file with mode: 0644]
res/drawable-mdpi/ic_location.png [new file with mode: 0755]
res/drawable-mdpi/ic_location_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_location_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_profile_drawer.png [new file with mode: 0755]
res/drawable-mdpi/ic_sms.png [new file with mode: 0755]
res/drawable-mdpi/ic_sms_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_sms_disable.png [new file with mode: 0755]
res/drawable-mdpi/ic_system.png [new file with mode: 0644]
res/drawable-mdpi/ic_system_dark.png [new file with mode: 0644]
res/drawable-mdpi/ic_system_disable.png [new file with mode: 0644]
res/drawable-mdpi/ic_system_red.png [new file with mode: 0644]
res/drawable-mdpi/ic_system_red_dark.png [new file with mode: 0644]
res/drawable-mdpi/ic_system_red_disable.png [new file with mode: 0644]
res/drawable-mdpi/ic_wallet_drawer.png [new file with mode: 0755]
res/drawable-mdpi/ic_warning_drawer.png [new file with mode: 0755]
res/drawable-mdpi/ic_wiretapping.png [new file with mode: 0755]
res/drawable-mdpi/ic_wiretapping_dark.png [new file with mode: 0755]
res/drawable-mdpi/ic_wiretapping_disable.png [new file with mode: 0755]
res/drawable-mdpi/img_welcome_screen.png [new file with mode: 0755]
res/drawable-mdpi/logo_fnp.png [new file with mode: 0755]
res/drawable-mdpi/logo_maic.png [new file with mode: 0755]
res/drawable-mdpi/logo_samsung.png [new file with mode: 0755]
res/drawable-nodpi/nav_drawer_separator.9.png [new file with mode: 0644]
res/drawable-xhdpi/btn_co_moge_normal.png [new file with mode: 0644]
res/drawable-xhdpi/btn_co_moge_pressed.png [new file with mode: 0644]
res/drawable-xhdpi/btn_legenda_normal.png [new file with mode: 0644]
res/drawable-xhdpi/btn_legenda_pressed.png [new file with mode: 0644]
res/drawable-xhdpi/btn_odinstaluj_normal.png [new file with mode: 0644]
res/drawable-xhdpi/btn_odinstaluj_pressed.png [new file with mode: 0644]
res/drawable-xhdpi/btn_ok_normal.png [new file with mode: 0755]
res/drawable-xhdpi/btn_ok_pressed.png [new file with mode: 0755]
res/drawable-xhdpi/btn_powrot_normal.png [new file with mode: 0644]
res/drawable-xhdpi/btn_powrot_pressed.png [new file with mode: 0644]
res/drawable-xhdpi/btn_ustawienia_normal.png [new file with mode: 0644]
res/drawable-xhdpi/btn_ustawienia_pressed.png [new file with mode: 0644]
res/drawable-xhdpi/btn_wiecej_info_normal.png [new file with mode: 0644]
res/drawable-xhdpi/btn_wiecej_info_pressed.png [new file with mode: 0644]
res/drawable-xhdpi/drawer_shadow.9.png [new file with mode: 0644]
res/drawable-xhdpi/ic_broke.png [new file with mode: 0755]
res/drawable-xhdpi/ic_broke_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_broke_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_call.png [new file with mode: 0755]
res/drawable-xhdpi/ic_call_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_call_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_call_history.png [new file with mode: 0755]
res/drawable-xhdpi/ic_call_history_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_call_history_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_communication.png [new file with mode: 0755]
res/drawable-xhdpi/ic_communication_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_communication_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_cyber_profile.png [new file with mode: 0755]
res/drawable-xhdpi/ic_cyber_profile_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_cyber_profile_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_data_sending.png [new file with mode: 0755]
res/drawable-xhdpi/ic_data_sending_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_data_sending_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_data_transmission.png [new file with mode: 0755]
res/drawable-xhdpi/ic_data_transmission_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_data_transmission_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_device.png [new file with mode: 0755]
res/drawable-xhdpi/ic_device_control.png [new file with mode: 0755]
res/drawable-xhdpi/ic_device_control_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_device_control_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_device_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_device_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_device_drawer.png [new file with mode: 0755]
res/drawable-xhdpi/ic_disturb.png [new file with mode: 0755]
res/drawable-xhdpi/ic_disturb_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_disturb_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_drawer.png [new file with mode: 0644]
res/drawable-xhdpi/ic_files.png [new file with mode: 0755]
res/drawable-xhdpi/ic_files_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_files_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_files_edit.png [new file with mode: 0755]
res/drawable-xhdpi/ic_files_edit_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_files_edit_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_launcher.png [new file with mode: 0644]
res/drawable-xhdpi/ic_location.png [new file with mode: 0755]
res/drawable-xhdpi/ic_location_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_location_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_profile_drawer.png [new file with mode: 0755]
res/drawable-xhdpi/ic_sms.png [new file with mode: 0755]
res/drawable-xhdpi/ic_sms_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_sms_disable.png [new file with mode: 0755]
res/drawable-xhdpi/ic_system.png [new file with mode: 0644]
res/drawable-xhdpi/ic_system_dark.png [new file with mode: 0644]
res/drawable-xhdpi/ic_system_disable.png [new file with mode: 0644]
res/drawable-xhdpi/ic_system_red.png [new file with mode: 0644]
res/drawable-xhdpi/ic_system_red_dark.png [new file with mode: 0644]
res/drawable-xhdpi/ic_system_red_disable.png [new file with mode: 0644]
res/drawable-xhdpi/ic_wallet_drawer.png [new file with mode: 0755]
res/drawable-xhdpi/ic_warning_drawer.png [new file with mode: 0755]
res/drawable-xhdpi/ic_wiretapping.png [new file with mode: 0755]
res/drawable-xhdpi/ic_wiretapping_dark.png [new file with mode: 0755]
res/drawable-xhdpi/ic_wiretapping_disable.png [new file with mode: 0755]
res/drawable-xhdpi/img_welcome_screen.png [new file with mode: 0755]
res/drawable-xhdpi/logo_fnp.png [new file with mode: 0755]
res/drawable-xhdpi/logo_maic.png [new file with mode: 0755]
res/drawable-xhdpi/logo_samsung.png [new file with mode: 0755]
res/drawable-xxhdpi/btn_co_moge_normal.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_co_moge_pressed.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_legenda_normal.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_legenda_pressed.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_odinstaluj_normal.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_odinstaluj_pressed.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_ok_normal.png [new file with mode: 0755]
res/drawable-xxhdpi/btn_ok_pressed.png [new file with mode: 0755]
res/drawable-xxhdpi/btn_powrot_normal.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_powrot_pressed.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_ustawienia_normal.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_ustawienia_pressed.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_wiecej_info_normal.png [new file with mode: 0644]
res/drawable-xxhdpi/btn_wiecej_info_pressed.png [new file with mode: 0644]
res/drawable-xxhdpi/drawer_shadow.9.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_broke.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_broke_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_broke_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_call.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_call_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_call_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_call_history.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_call_history_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_call_history_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_communication.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_communication_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_communication_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_cyber_profile.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_cyber_profile_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_cyber_profile_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_data_sending.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_data_sending_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_data_sending_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_data_transmission.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_data_transmission_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_data_transmission_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_device.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_device_control.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_device_control_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_device_control_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_device_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_device_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_device_drawer.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_disturb.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_disturb_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_disturb_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_drawer.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_files.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_files_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_files_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_files_edit.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_files_edit_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_files_edit_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_launcher.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_location.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_location_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_location_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_profile_drawer.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_sms.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_sms_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_sms_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_system.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_system_dark.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_system_disable.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_system_red.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_system_red_dark.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_system_red_disable.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_wallet_drawer.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_warning_drawer.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_wiretapping.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_wiretapping_dark.png [new file with mode: 0755]
res/drawable-xxhdpi/ic_wiretapping_disable.png [new file with mode: 0755]
res/drawable-xxhdpi/img_welcome_screen.png [new file with mode: 0755]
res/drawable-xxhdpi/logo_fnp.png [new file with mode: 0755]
res/drawable-xxhdpi/logo_maic.png [new file with mode: 0755]
res/drawable-xxhdpi/logo_samsung.png [new file with mode: 0755]
res/drawable-xxhdpi/title_welcome_screen.png [new file with mode: 0755]
res/drawable/actionbar_background.xml [new file with mode: 0644]
res/drawable/app_info_settings_button.xml [new file with mode: 0644]
res/drawable/app_info_uninstall_button.xml [new file with mode: 0644]
res/drawable/app_info_what_can_button.xml [new file with mode: 0644]
res/drawable/back_button.xml [new file with mode: 0644]
res/drawable/custom_border.xml [new file with mode: 0644]
res/drawable/drawer_background_selector.xml [new file with mode: 0644]
res/drawable/legend_btn_selector.xml [new file with mode: 0644]
res/drawable/more_info_button.xml [new file with mode: 0644]
res/drawable/nav_drawer_separator.9.png [new file with mode: 0755]
res/drawable/ok_button.xml [new file with mode: 0644]
res/layout-land/activity_app_info.xml [new file with mode: 0644]
res/layout-land/activity_popup.xml [new file with mode: 0644]
res/layout-land/welcome_dialog.xml [new file with mode: 0644]
res/layout-large-land/activity_main.xml [new file with mode: 0644]
res/layout/activity_app_info.xml [new file with mode: 0644]
res/layout/activity_license.xml [new file with mode: 0644]
res/layout/activity_main.xml [new file with mode: 0644]
res/layout/activity_popup.xml [new file with mode: 0644]
res/layout/app_list_item_view.xml [new file with mode: 0644]
res/layout/drawer_list_item.xml [new file with mode: 0644]
res/layout/fragment_main.xml [new file with mode: 0644]
res/layout/fragment_navigation_drawer.xml [new file with mode: 0644]
res/layout/header_layout.xml [new file with mode: 0644]
res/layout/threats_list_item.xml [new file with mode: 0644]
res/layout/welcome_dialog.xml [new file with mode: 0644]
res/menu/main.xml [new file with mode: 0644]
res/values-v11/styles.xml [new file with mode: 0644]
res/values-v14/styles.xml [new file with mode: 0644]
res/values-w820dp/dimens.xml [new file with mode: 0644]
res/values/attrs.xml [new file with mode: 0644]
res/values/color.xml [new file with mode: 0644]
res/values/dimens.xml [new file with mode: 0644]
res/values/strings.xml [new file with mode: 0644]
res/values/styles.xml [new file with mode: 0644]
res/xml/categories.xml [new file with mode: 0644]
res/xml/data_send_subcategory.xml [new file with mode: 0644]
src/com/samsung/srpol/data/Category.java [new file with mode: 0644]
src/com/samsung/srpol/data/Subcategory.java [new file with mode: 0644]
src/com/samsung/srpol/loader/AppDetails.java [new file with mode: 0644]
src/com/samsung/srpol/loader/AppListChangeListener.java [new file with mode: 0644]
src/com/samsung/srpol/loader/AppListLoader.java [new file with mode: 0644]
src/com/samsung/srpol/parallax/ParallaxListView.java [new file with mode: 0644]
src/com/samsung/srpol/parallax/ParallaxListViewHelper.java [new file with mode: 0644]
src/com/samsung/srpol/parallax/ParallaxedView.java [new file with mode: 0644]
src/com/samsung/srpol/ui/AppInfoActivity.java [new file with mode: 0644]
src/com/samsung/srpol/ui/LicenseActivity.java [new file with mode: 0644]
src/com/samsung/srpol/ui/MainActivity.java [new file with mode: 0644]
src/com/samsung/srpol/ui/PopupActivity.java [new file with mode: 0644]
src/com/samsung/srpol/ui/WelcomeDialog.java [new file with mode: 0644]
src/com/samsung/srpol/ui/drawer/CategoryArrayAdapter.java [new file with mode: 0644]
src/com/samsung/srpol/ui/drawer/MenuFragment.java [new file with mode: 0644]
src/com/samsung/srpol/ui/drawer/NavigationDrawerItemListener.java [new file with mode: 0644]
src/com/samsung/srpol/ui/tabpager/AppListArrayAdapter.java [new file with mode: 0644]
src/com/samsung/srpol/ui/tabpager/PageAdapter.java [new file with mode: 0644]
src/com/samsung/srpol/ui/tabpager/PageFragment.java [new file with mode: 0644]
src/com/samsung/srpol/utils/Utils.java [new file with mode: 0644]

diff --git a/AndroidManifest.xml b/AndroidManifest.xml
new file mode 100644 (file)
index 0000000..e7decd3
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.samsung.srpol"
+    android:versionCode="7"
+    android:versionName="1.01" >
+
+    <uses-sdk
+        android:minSdkVersion="8"
+        android:targetSdkVersion="21" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme" >
+        <activity
+            android:name="com.samsung.srpol.ui.MainActivity"
+            android:label="@string/app_name"
+            android:launchMode="singleTask" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="com.samsung.srpol.ui.AppInfoActivity"
+            android:label="@string/app_name" >
+        </activity>
+        <activity
+            android:name="com.samsung.srpol.ui.PopupActivity"
+            android:label="@string/app_name" >
+        </activity>
+        <activity
+            android:name="com.samsung.srpol.ui.LicenseActivity"
+            android:label="@string/app_name" >
+        </activity>
+    </application>
+
+</manifest>
diff --git a/ic_launcher-web.png b/ic_launcher-web.png
new file mode 100644 (file)
index 0000000..b843eee
Binary files /dev/null and b/ic_launcher-web.png differ
diff --git a/libs/android-support-v4.jar b/libs/android-support-v4.jar
new file mode 100644 (file)
index 0000000..ac4181f
Binary files /dev/null and b/libs/android-support-v4.jar differ
diff --git a/libs/listviewanimations_lib-core_3.1.0.jar b/libs/listviewanimations_lib-core_3.1.0.jar
new file mode 100644 (file)
index 0000000..68e3c5a
Binary files /dev/null and b/libs/listviewanimations_lib-core_3.1.0.jar differ
diff --git a/libs/nineoldandroids-2.4.0.jar b/libs/nineoldandroids-2.4.0.jar
new file mode 100644 (file)
index 0000000..43ee45f
Binary files /dev/null and b/libs/nineoldandroids-2.4.0.jar differ
diff --git a/license.txt b/license.txt
new file mode 100644 (file)
index 0000000..dba13ed
--- /dev/null
@@ -0,0 +1,661 @@
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+  A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate.  Many developers of free software are heartened and
+encouraged by the resulting cooperation.  However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+  The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community.  It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server.  Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+  An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals.  This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU Affero General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Remote Network Interaction; Use with the GNU General Public License.
+
+  Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software.  This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time.  Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source.  For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code.  There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<http://www.gnu.org/licenses/>.
diff --git a/lint.xml b/lint.xml
new file mode 100644 (file)
index 0000000..ee0eead
--- /dev/null
+++ b/lint.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lint>
+</lint>
\ No newline at end of file
diff --git a/proguard-project.txt b/proguard-project.txt
new file mode 100644 (file)
index 0000000..f2fe155
--- /dev/null
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/project.properties b/project.properties
new file mode 100644 (file)
index 0000000..d17e437
--- /dev/null
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=Google Inc.:Google APIs:19
+android.library.reference.1=../appcompat_v7
diff --git a/res/anim/fadein.xml b/res/anim/fadein.xml
new file mode 100644 (file)
index 0000000..9846462
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<alpha xmlns:android="http://schemas.android.com/apk/res/android"
+        android:fromAlpha="0.0" android:toAlpha="1.0"
+        android:duration="300" />
\ No newline at end of file
diff --git a/res/anim/fadeout.xml b/res/anim/fadeout.xml
new file mode 100644 (file)
index 0000000..827ebee
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<alpha xmlns:android="http://schemas.android.com/apk/res/android"
+        android:fromAlpha="1.0" android:toAlpha="0.0"
+        android:duration="300" />
\ No newline at end of file
diff --git a/res/anim/slide_right.xml b/res/anim/slide_right.xml
new file mode 100644 (file)
index 0000000..fda641c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:startOffset="50"
+    android:fromXDelta="0" 
+    android:toXDelta="100%p"
+    android:duration="400" />
diff --git a/res/drawable-hdpi/btn_co_moge_normal.png b/res/drawable-hdpi/btn_co_moge_normal.png
new file mode 100644 (file)
index 0000000..9f35b97
Binary files /dev/null and b/res/drawable-hdpi/btn_co_moge_normal.png differ
diff --git a/res/drawable-hdpi/btn_co_moge_pressed.png b/res/drawable-hdpi/btn_co_moge_pressed.png
new file mode 100644 (file)
index 0000000..8d7dd31
Binary files /dev/null and b/res/drawable-hdpi/btn_co_moge_pressed.png differ
diff --git a/res/drawable-hdpi/btn_legenda_normal.png b/res/drawable-hdpi/btn_legenda_normal.png
new file mode 100644 (file)
index 0000000..5a0d18f
Binary files /dev/null and b/res/drawable-hdpi/btn_legenda_normal.png differ
diff --git a/res/drawable-hdpi/btn_legenda_pressed.png b/res/drawable-hdpi/btn_legenda_pressed.png
new file mode 100644 (file)
index 0000000..46aa50f
Binary files /dev/null and b/res/drawable-hdpi/btn_legenda_pressed.png differ
diff --git a/res/drawable-hdpi/btn_odinstaluj_normal.png b/res/drawable-hdpi/btn_odinstaluj_normal.png
new file mode 100644 (file)
index 0000000..639d800
Binary files /dev/null and b/res/drawable-hdpi/btn_odinstaluj_normal.png differ
diff --git a/res/drawable-hdpi/btn_odinstaluj_pressed.png b/res/drawable-hdpi/btn_odinstaluj_pressed.png
new file mode 100644 (file)
index 0000000..7bcca20
Binary files /dev/null and b/res/drawable-hdpi/btn_odinstaluj_pressed.png differ
diff --git a/res/drawable-hdpi/btn_ok_normal.png b/res/drawable-hdpi/btn_ok_normal.png
new file mode 100755 (executable)
index 0000000..9896289
Binary files /dev/null and b/res/drawable-hdpi/btn_ok_normal.png differ
diff --git a/res/drawable-hdpi/btn_ok_pressed.png b/res/drawable-hdpi/btn_ok_pressed.png
new file mode 100755 (executable)
index 0000000..2056355
Binary files /dev/null and b/res/drawable-hdpi/btn_ok_pressed.png differ
diff --git a/res/drawable-hdpi/btn_powrot_normal.png b/res/drawable-hdpi/btn_powrot_normal.png
new file mode 100644 (file)
index 0000000..5bb6b59
Binary files /dev/null and b/res/drawable-hdpi/btn_powrot_normal.png differ
diff --git a/res/drawable-hdpi/btn_powrot_pressed.png b/res/drawable-hdpi/btn_powrot_pressed.png
new file mode 100644 (file)
index 0000000..1b69f86
Binary files /dev/null and b/res/drawable-hdpi/btn_powrot_pressed.png differ
diff --git a/res/drawable-hdpi/btn_ustawienia_normal.png b/res/drawable-hdpi/btn_ustawienia_normal.png
new file mode 100644 (file)
index 0000000..5ca2c8d
Binary files /dev/null and b/res/drawable-hdpi/btn_ustawienia_normal.png differ
diff --git a/res/drawable-hdpi/btn_ustawienia_pressed.png b/res/drawable-hdpi/btn_ustawienia_pressed.png
new file mode 100644 (file)
index 0000000..295e402
Binary files /dev/null and b/res/drawable-hdpi/btn_ustawienia_pressed.png differ
diff --git a/res/drawable-hdpi/btn_wiecej_info_normal.png b/res/drawable-hdpi/btn_wiecej_info_normal.png
new file mode 100644 (file)
index 0000000..12a52a3
Binary files /dev/null and b/res/drawable-hdpi/btn_wiecej_info_normal.png differ
diff --git a/res/drawable-hdpi/btn_wiecej_info_pressed.png b/res/drawable-hdpi/btn_wiecej_info_pressed.png
new file mode 100644 (file)
index 0000000..2551679
Binary files /dev/null and b/res/drawable-hdpi/btn_wiecej_info_pressed.png differ
diff --git a/res/drawable-hdpi/drawer_shadow.9.png b/res/drawable-hdpi/drawer_shadow.9.png
new file mode 100644 (file)
index 0000000..236bff5
Binary files /dev/null and b/res/drawable-hdpi/drawer_shadow.9.png differ
diff --git a/res/drawable-hdpi/ic_broke.png b/res/drawable-hdpi/ic_broke.png
new file mode 100755 (executable)
index 0000000..7b74d3a
Binary files /dev/null and b/res/drawable-hdpi/ic_broke.png differ
diff --git a/res/drawable-hdpi/ic_broke_dark.png b/res/drawable-hdpi/ic_broke_dark.png
new file mode 100755 (executable)
index 0000000..25ec702
Binary files /dev/null and b/res/drawable-hdpi/ic_broke_dark.png differ
diff --git a/res/drawable-hdpi/ic_broke_disable.png b/res/drawable-hdpi/ic_broke_disable.png
new file mode 100755 (executable)
index 0000000..f1ee8a8
Binary files /dev/null and b/res/drawable-hdpi/ic_broke_disable.png differ
diff --git a/res/drawable-hdpi/ic_call.png b/res/drawable-hdpi/ic_call.png
new file mode 100755 (executable)
index 0000000..0e6b1d5
Binary files /dev/null and b/res/drawable-hdpi/ic_call.png differ
diff --git a/res/drawable-hdpi/ic_call_dark.png b/res/drawable-hdpi/ic_call_dark.png
new file mode 100755 (executable)
index 0000000..99e7015
Binary files /dev/null and b/res/drawable-hdpi/ic_call_dark.png differ
diff --git a/res/drawable-hdpi/ic_call_disable.png b/res/drawable-hdpi/ic_call_disable.png
new file mode 100755 (executable)
index 0000000..f22e3c2
Binary files /dev/null and b/res/drawable-hdpi/ic_call_disable.png differ
diff --git a/res/drawable-hdpi/ic_call_history.png b/res/drawable-hdpi/ic_call_history.png
new file mode 100755 (executable)
index 0000000..408df30
Binary files /dev/null and b/res/drawable-hdpi/ic_call_history.png differ
diff --git a/res/drawable-hdpi/ic_call_history_dark.png b/res/drawable-hdpi/ic_call_history_dark.png
new file mode 100755 (executable)
index 0000000..bb8e041
Binary files /dev/null and b/res/drawable-hdpi/ic_call_history_dark.png differ
diff --git a/res/drawable-hdpi/ic_call_history_disable.png b/res/drawable-hdpi/ic_call_history_disable.png
new file mode 100755 (executable)
index 0000000..ea19d2c
Binary files /dev/null and b/res/drawable-hdpi/ic_call_history_disable.png differ
diff --git a/res/drawable-hdpi/ic_communication.png b/res/drawable-hdpi/ic_communication.png
new file mode 100755 (executable)
index 0000000..c5121da
Binary files /dev/null and b/res/drawable-hdpi/ic_communication.png differ
diff --git a/res/drawable-hdpi/ic_communication_dark.png b/res/drawable-hdpi/ic_communication_dark.png
new file mode 100755 (executable)
index 0000000..ed9d32f
Binary files /dev/null and b/res/drawable-hdpi/ic_communication_dark.png differ
diff --git a/res/drawable-hdpi/ic_communication_disable.png b/res/drawable-hdpi/ic_communication_disable.png
new file mode 100755 (executable)
index 0000000..6ae7dfb
Binary files /dev/null and b/res/drawable-hdpi/ic_communication_disable.png differ
diff --git a/res/drawable-hdpi/ic_cyber_profile.png b/res/drawable-hdpi/ic_cyber_profile.png
new file mode 100755 (executable)
index 0000000..b0fa20b
Binary files /dev/null and b/res/drawable-hdpi/ic_cyber_profile.png differ
diff --git a/res/drawable-hdpi/ic_cyber_profile_dark.png b/res/drawable-hdpi/ic_cyber_profile_dark.png
new file mode 100755 (executable)
index 0000000..bf05bec
Binary files /dev/null and b/res/drawable-hdpi/ic_cyber_profile_dark.png differ
diff --git a/res/drawable-hdpi/ic_cyber_profile_disable.png b/res/drawable-hdpi/ic_cyber_profile_disable.png
new file mode 100755 (executable)
index 0000000..b2ce2a1
Binary files /dev/null and b/res/drawable-hdpi/ic_cyber_profile_disable.png differ
diff --git a/res/drawable-hdpi/ic_data_sending.png b/res/drawable-hdpi/ic_data_sending.png
new file mode 100755 (executable)
index 0000000..4a22e5c
Binary files /dev/null and b/res/drawable-hdpi/ic_data_sending.png differ
diff --git a/res/drawable-hdpi/ic_data_sending_dark.png b/res/drawable-hdpi/ic_data_sending_dark.png
new file mode 100755 (executable)
index 0000000..8827f43
Binary files /dev/null and b/res/drawable-hdpi/ic_data_sending_dark.png differ
diff --git a/res/drawable-hdpi/ic_data_sending_disable.png b/res/drawable-hdpi/ic_data_sending_disable.png
new file mode 100755 (executable)
index 0000000..5635a81
Binary files /dev/null and b/res/drawable-hdpi/ic_data_sending_disable.png differ
diff --git a/res/drawable-hdpi/ic_data_transmission.png b/res/drawable-hdpi/ic_data_transmission.png
new file mode 100755 (executable)
index 0000000..26cbd0d
Binary files /dev/null and b/res/drawable-hdpi/ic_data_transmission.png differ
diff --git a/res/drawable-hdpi/ic_data_transmission_dark.png b/res/drawable-hdpi/ic_data_transmission_dark.png
new file mode 100755 (executable)
index 0000000..00694e6
Binary files /dev/null and b/res/drawable-hdpi/ic_data_transmission_dark.png differ
diff --git a/res/drawable-hdpi/ic_data_transmission_disable.png b/res/drawable-hdpi/ic_data_transmission_disable.png
new file mode 100755 (executable)
index 0000000..e2be66b
Binary files /dev/null and b/res/drawable-hdpi/ic_data_transmission_disable.png differ
diff --git a/res/drawable-hdpi/ic_device.png b/res/drawable-hdpi/ic_device.png
new file mode 100755 (executable)
index 0000000..b5f2a16
Binary files /dev/null and b/res/drawable-hdpi/ic_device.png differ
diff --git a/res/drawable-hdpi/ic_device_control.png b/res/drawable-hdpi/ic_device_control.png
new file mode 100755 (executable)
index 0000000..53cc270
Binary files /dev/null and b/res/drawable-hdpi/ic_device_control.png differ
diff --git a/res/drawable-hdpi/ic_device_control_dark.png b/res/drawable-hdpi/ic_device_control_dark.png
new file mode 100755 (executable)
index 0000000..c4ea76f
Binary files /dev/null and b/res/drawable-hdpi/ic_device_control_dark.png differ
diff --git a/res/drawable-hdpi/ic_device_control_disable.png b/res/drawable-hdpi/ic_device_control_disable.png
new file mode 100755 (executable)
index 0000000..f48c5a7
Binary files /dev/null and b/res/drawable-hdpi/ic_device_control_disable.png differ
diff --git a/res/drawable-hdpi/ic_device_dark.png b/res/drawable-hdpi/ic_device_dark.png
new file mode 100755 (executable)
index 0000000..de67ca7
Binary files /dev/null and b/res/drawable-hdpi/ic_device_dark.png differ
diff --git a/res/drawable-hdpi/ic_device_disable.png b/res/drawable-hdpi/ic_device_disable.png
new file mode 100755 (executable)
index 0000000..bc33971
Binary files /dev/null and b/res/drawable-hdpi/ic_device_disable.png differ
diff --git a/res/drawable-hdpi/ic_device_drawer.png b/res/drawable-hdpi/ic_device_drawer.png
new file mode 100755 (executable)
index 0000000..6644296
Binary files /dev/null and b/res/drawable-hdpi/ic_device_drawer.png differ
diff --git a/res/drawable-hdpi/ic_disturb.png b/res/drawable-hdpi/ic_disturb.png
new file mode 100755 (executable)
index 0000000..36aaa8c
Binary files /dev/null and b/res/drawable-hdpi/ic_disturb.png differ
diff --git a/res/drawable-hdpi/ic_disturb_dark.png b/res/drawable-hdpi/ic_disturb_dark.png
new file mode 100755 (executable)
index 0000000..5440d14
Binary files /dev/null and b/res/drawable-hdpi/ic_disturb_dark.png differ
diff --git a/res/drawable-hdpi/ic_disturb_disable.png b/res/drawable-hdpi/ic_disturb_disable.png
new file mode 100755 (executable)
index 0000000..591e5c5
Binary files /dev/null and b/res/drawable-hdpi/ic_disturb_disable.png differ
diff --git a/res/drawable-hdpi/ic_drawer.png b/res/drawable-hdpi/ic_drawer.png
new file mode 100644 (file)
index 0000000..4bec999
Binary files /dev/null and b/res/drawable-hdpi/ic_drawer.png differ
diff --git a/res/drawable-hdpi/ic_files.png b/res/drawable-hdpi/ic_files.png
new file mode 100755 (executable)
index 0000000..ad281ba
Binary files /dev/null and b/res/drawable-hdpi/ic_files.png differ
diff --git a/res/drawable-hdpi/ic_files_dark.png b/res/drawable-hdpi/ic_files_dark.png
new file mode 100755 (executable)
index 0000000..2df9b8a
Binary files /dev/null and b/res/drawable-hdpi/ic_files_dark.png differ
diff --git a/res/drawable-hdpi/ic_files_disable.png b/res/drawable-hdpi/ic_files_disable.png
new file mode 100755 (executable)
index 0000000..633e476
Binary files /dev/null and b/res/drawable-hdpi/ic_files_disable.png differ
diff --git a/res/drawable-hdpi/ic_files_edit.png b/res/drawable-hdpi/ic_files_edit.png
new file mode 100755 (executable)
index 0000000..6aed10b
Binary files /dev/null and b/res/drawable-hdpi/ic_files_edit.png differ
diff --git a/res/drawable-hdpi/ic_files_edit_dark.png b/res/drawable-hdpi/ic_files_edit_dark.png
new file mode 100755 (executable)
index 0000000..378a982
Binary files /dev/null and b/res/drawable-hdpi/ic_files_edit_dark.png differ
diff --git a/res/drawable-hdpi/ic_files_edit_disable.png b/res/drawable-hdpi/ic_files_edit_disable.png
new file mode 100755 (executable)
index 0000000..96b1731
Binary files /dev/null and b/res/drawable-hdpi/ic_files_edit_disable.png differ
diff --git a/res/drawable-hdpi/ic_launcher.png b/res/drawable-hdpi/ic_launcher.png
new file mode 100644 (file)
index 0000000..49efd5c
Binary files /dev/null and b/res/drawable-hdpi/ic_launcher.png differ
diff --git a/res/drawable-hdpi/ic_location.png b/res/drawable-hdpi/ic_location.png
new file mode 100755 (executable)
index 0000000..f383c86
Binary files /dev/null and b/res/drawable-hdpi/ic_location.png differ
diff --git a/res/drawable-hdpi/ic_location_dark.png b/res/drawable-hdpi/ic_location_dark.png
new file mode 100755 (executable)
index 0000000..931bb45
Binary files /dev/null and b/res/drawable-hdpi/ic_location_dark.png differ
diff --git a/res/drawable-hdpi/ic_location_disable.png b/res/drawable-hdpi/ic_location_disable.png
new file mode 100755 (executable)
index 0000000..02c6e79
Binary files /dev/null and b/res/drawable-hdpi/ic_location_disable.png differ
diff --git a/res/drawable-hdpi/ic_profile_drawer.png b/res/drawable-hdpi/ic_profile_drawer.png
new file mode 100755 (executable)
index 0000000..a955dea
Binary files /dev/null and b/res/drawable-hdpi/ic_profile_drawer.png differ
diff --git a/res/drawable-hdpi/ic_sms.png b/res/drawable-hdpi/ic_sms.png
new file mode 100755 (executable)
index 0000000..081e014
Binary files /dev/null and b/res/drawable-hdpi/ic_sms.png differ
diff --git a/res/drawable-hdpi/ic_sms_dark.png b/res/drawable-hdpi/ic_sms_dark.png
new file mode 100755 (executable)
index 0000000..28faea8
Binary files /dev/null and b/res/drawable-hdpi/ic_sms_dark.png differ
diff --git a/res/drawable-hdpi/ic_sms_disable.png b/res/drawable-hdpi/ic_sms_disable.png
new file mode 100755 (executable)
index 0000000..0aa5203
Binary files /dev/null and b/res/drawable-hdpi/ic_sms_disable.png differ
diff --git a/res/drawable-hdpi/ic_system.png b/res/drawable-hdpi/ic_system.png
new file mode 100644 (file)
index 0000000..b092202
Binary files /dev/null and b/res/drawable-hdpi/ic_system.png differ
diff --git a/res/drawable-hdpi/ic_system_dark.png b/res/drawable-hdpi/ic_system_dark.png
new file mode 100644 (file)
index 0000000..caa9f0b
Binary files /dev/null and b/res/drawable-hdpi/ic_system_dark.png differ
diff --git a/res/drawable-hdpi/ic_system_disable.png b/res/drawable-hdpi/ic_system_disable.png
new file mode 100644 (file)
index 0000000..37febde
Binary files /dev/null and b/res/drawable-hdpi/ic_system_disable.png differ
diff --git a/res/drawable-hdpi/ic_system_red.png b/res/drawable-hdpi/ic_system_red.png
new file mode 100644 (file)
index 0000000..a85b679
Binary files /dev/null and b/res/drawable-hdpi/ic_system_red.png differ
diff --git a/res/drawable-hdpi/ic_system_red_dark.png b/res/drawable-hdpi/ic_system_red_dark.png
new file mode 100644 (file)
index 0000000..19d42c9
Binary files /dev/null and b/res/drawable-hdpi/ic_system_red_dark.png differ
diff --git a/res/drawable-hdpi/ic_system_red_disable.png b/res/drawable-hdpi/ic_system_red_disable.png
new file mode 100644 (file)
index 0000000..7af6801
Binary files /dev/null and b/res/drawable-hdpi/ic_system_red_disable.png differ
diff --git a/res/drawable-hdpi/ic_wallet_drawer.png b/res/drawable-hdpi/ic_wallet_drawer.png
new file mode 100755 (executable)
index 0000000..e81905d
Binary files /dev/null and b/res/drawable-hdpi/ic_wallet_drawer.png differ
diff --git a/res/drawable-hdpi/ic_warning_drawer.png b/res/drawable-hdpi/ic_warning_drawer.png
new file mode 100755 (executable)
index 0000000..678b2ef
Binary files /dev/null and b/res/drawable-hdpi/ic_warning_drawer.png differ
diff --git a/res/drawable-hdpi/ic_wiretapping.png b/res/drawable-hdpi/ic_wiretapping.png
new file mode 100755 (executable)
index 0000000..589d129
Binary files /dev/null and b/res/drawable-hdpi/ic_wiretapping.png differ
diff --git a/res/drawable-hdpi/ic_wiretapping_dark.png b/res/drawable-hdpi/ic_wiretapping_dark.png
new file mode 100755 (executable)
index 0000000..80be5e7
Binary files /dev/null and b/res/drawable-hdpi/ic_wiretapping_dark.png differ
diff --git a/res/drawable-hdpi/ic_wiretapping_disable.png b/res/drawable-hdpi/ic_wiretapping_disable.png
new file mode 100755 (executable)
index 0000000..9686fa2
Binary files /dev/null and b/res/drawable-hdpi/ic_wiretapping_disable.png differ
diff --git a/res/drawable-hdpi/img_welcome_screen.png b/res/drawable-hdpi/img_welcome_screen.png
new file mode 100755 (executable)
index 0000000..709ccc9
Binary files /dev/null and b/res/drawable-hdpi/img_welcome_screen.png differ
diff --git a/res/drawable-hdpi/logo_fnp.png b/res/drawable-hdpi/logo_fnp.png
new file mode 100755 (executable)
index 0000000..6246e55
Binary files /dev/null and b/res/drawable-hdpi/logo_fnp.png differ
diff --git a/res/drawable-hdpi/logo_maic.png b/res/drawable-hdpi/logo_maic.png
new file mode 100755 (executable)
index 0000000..cbb69dc
Binary files /dev/null and b/res/drawable-hdpi/logo_maic.png differ
diff --git a/res/drawable-hdpi/logo_samsung.png b/res/drawable-hdpi/logo_samsung.png
new file mode 100755 (executable)
index 0000000..6466967
Binary files /dev/null and b/res/drawable-hdpi/logo_samsung.png differ
diff --git a/res/drawable-ldpi/btn_co_moge_normal.png b/res/drawable-ldpi/btn_co_moge_normal.png
new file mode 100644 (file)
index 0000000..728a5a9
Binary files /dev/null and b/res/drawable-ldpi/btn_co_moge_normal.png differ
diff --git a/res/drawable-ldpi/btn_co_moge_pressed.png b/res/drawable-ldpi/btn_co_moge_pressed.png
new file mode 100644 (file)
index 0000000..5785e78
Binary files /dev/null and b/res/drawable-ldpi/btn_co_moge_pressed.png differ
diff --git a/res/drawable-ldpi/btn_legenda_normal.png b/res/drawable-ldpi/btn_legenda_normal.png
new file mode 100644 (file)
index 0000000..fa4fb69
Binary files /dev/null and b/res/drawable-ldpi/btn_legenda_normal.png differ
diff --git a/res/drawable-ldpi/btn_legenda_pressed.png b/res/drawable-ldpi/btn_legenda_pressed.png
new file mode 100644 (file)
index 0000000..a56d527
Binary files /dev/null and b/res/drawable-ldpi/btn_legenda_pressed.png differ
diff --git a/res/drawable-ldpi/btn_odinstaluj_normal.png b/res/drawable-ldpi/btn_odinstaluj_normal.png
new file mode 100644 (file)
index 0000000..e571ca3
Binary files /dev/null and b/res/drawable-ldpi/btn_odinstaluj_normal.png differ
diff --git a/res/drawable-ldpi/btn_odinstaluj_pressed.png b/res/drawable-ldpi/btn_odinstaluj_pressed.png
new file mode 100644 (file)
index 0000000..1407f3c
Binary files /dev/null and b/res/drawable-ldpi/btn_odinstaluj_pressed.png differ
diff --git a/res/drawable-ldpi/btn_ok_normal.png b/res/drawable-ldpi/btn_ok_normal.png
new file mode 100755 (executable)
index 0000000..4258e33
Binary files /dev/null and b/res/drawable-ldpi/btn_ok_normal.png differ
diff --git a/res/drawable-ldpi/btn_ok_pressed.png b/res/drawable-ldpi/btn_ok_pressed.png
new file mode 100755 (executable)
index 0000000..eaaacdf
Binary files /dev/null and b/res/drawable-ldpi/btn_ok_pressed.png differ
diff --git a/res/drawable-ldpi/btn_powrot_normal.png b/res/drawable-ldpi/btn_powrot_normal.png
new file mode 100644 (file)
index 0000000..d908808
Binary files /dev/null and b/res/drawable-ldpi/btn_powrot_normal.png differ
diff --git a/res/drawable-ldpi/btn_powrot_pressed.png b/res/drawable-ldpi/btn_powrot_pressed.png
new file mode 100644 (file)
index 0000000..8257aa1
Binary files /dev/null and b/res/drawable-ldpi/btn_powrot_pressed.png differ
diff --git a/res/drawable-ldpi/btn_ustawienia_normal.png b/res/drawable-ldpi/btn_ustawienia_normal.png
new file mode 100644 (file)
index 0000000..2e5d3e4
Binary files /dev/null and b/res/drawable-ldpi/btn_ustawienia_normal.png differ
diff --git a/res/drawable-ldpi/btn_ustawienia_pressed.png b/res/drawable-ldpi/btn_ustawienia_pressed.png
new file mode 100644 (file)
index 0000000..849038f
Binary files /dev/null and b/res/drawable-ldpi/btn_ustawienia_pressed.png differ
diff --git a/res/drawable-ldpi/btn_wiecej_info_normal.png b/res/drawable-ldpi/btn_wiecej_info_normal.png
new file mode 100644 (file)
index 0000000..1d282ac
Binary files /dev/null and b/res/drawable-ldpi/btn_wiecej_info_normal.png differ
diff --git a/res/drawable-ldpi/btn_wiecej_info_pressed.png b/res/drawable-ldpi/btn_wiecej_info_pressed.png
new file mode 100644 (file)
index 0000000..8916c63
Binary files /dev/null and b/res/drawable-ldpi/btn_wiecej_info_pressed.png differ
diff --git a/res/drawable-ldpi/ic_broke.png b/res/drawable-ldpi/ic_broke.png
new file mode 100755 (executable)
index 0000000..4bf50ed
Binary files /dev/null and b/res/drawable-ldpi/ic_broke.png differ
diff --git a/res/drawable-ldpi/ic_broke_dark.png b/res/drawable-ldpi/ic_broke_dark.png
new file mode 100755 (executable)
index 0000000..78f0842
Binary files /dev/null and b/res/drawable-ldpi/ic_broke_dark.png differ
diff --git a/res/drawable-ldpi/ic_broke_disable.png b/res/drawable-ldpi/ic_broke_disable.png
new file mode 100755 (executable)
index 0000000..2af5823
Binary files /dev/null and b/res/drawable-ldpi/ic_broke_disable.png differ
diff --git a/res/drawable-ldpi/ic_call.png b/res/drawable-ldpi/ic_call.png
new file mode 100755 (executable)
index 0000000..927effc
Binary files /dev/null and b/res/drawable-ldpi/ic_call.png differ
diff --git a/res/drawable-ldpi/ic_call_dark.png b/res/drawable-ldpi/ic_call_dark.png
new file mode 100755 (executable)
index 0000000..bb54de6
Binary files /dev/null and b/res/drawable-ldpi/ic_call_dark.png differ
diff --git a/res/drawable-ldpi/ic_call_disable.png b/res/drawable-ldpi/ic_call_disable.png
new file mode 100755 (executable)
index 0000000..811860e
Binary files /dev/null and b/res/drawable-ldpi/ic_call_disable.png differ
diff --git a/res/drawable-ldpi/ic_call_history.png b/res/drawable-ldpi/ic_call_history.png
new file mode 100755 (executable)
index 0000000..0623421
Binary files /dev/null and b/res/drawable-ldpi/ic_call_history.png differ
diff --git a/res/drawable-ldpi/ic_call_history_dark.png b/res/drawable-ldpi/ic_call_history_dark.png
new file mode 100755 (executable)
index 0000000..8fd362e
Binary files /dev/null and b/res/drawable-ldpi/ic_call_history_dark.png differ
diff --git a/res/drawable-ldpi/ic_call_history_disable.png b/res/drawable-ldpi/ic_call_history_disable.png
new file mode 100755 (executable)
index 0000000..bbde2aa
Binary files /dev/null and b/res/drawable-ldpi/ic_call_history_disable.png differ
diff --git a/res/drawable-ldpi/ic_communication.png b/res/drawable-ldpi/ic_communication.png
new file mode 100755 (executable)
index 0000000..b364cd3
Binary files /dev/null and b/res/drawable-ldpi/ic_communication.png differ
diff --git a/res/drawable-ldpi/ic_communication_dark.png b/res/drawable-ldpi/ic_communication_dark.png
new file mode 100755 (executable)
index 0000000..cd545ce
Binary files /dev/null and b/res/drawable-ldpi/ic_communication_dark.png differ
diff --git a/res/drawable-ldpi/ic_communication_disable.png b/res/drawable-ldpi/ic_communication_disable.png
new file mode 100755 (executable)
index 0000000..c4e6a89
Binary files /dev/null and b/res/drawable-ldpi/ic_communication_disable.png differ
diff --git a/res/drawable-ldpi/ic_cyber_profile.png b/res/drawable-ldpi/ic_cyber_profile.png
new file mode 100755 (executable)
index 0000000..18defb1
Binary files /dev/null and b/res/drawable-ldpi/ic_cyber_profile.png differ
diff --git a/res/drawable-ldpi/ic_cyber_profile_dark.png b/res/drawable-ldpi/ic_cyber_profile_dark.png
new file mode 100755 (executable)
index 0000000..8fff6b9
Binary files /dev/null and b/res/drawable-ldpi/ic_cyber_profile_dark.png differ
diff --git a/res/drawable-ldpi/ic_cyber_profile_disable.png b/res/drawable-ldpi/ic_cyber_profile_disable.png
new file mode 100755 (executable)
index 0000000..261c96f
Binary files /dev/null and b/res/drawable-ldpi/ic_cyber_profile_disable.png differ
diff --git a/res/drawable-ldpi/ic_data_sending.png b/res/drawable-ldpi/ic_data_sending.png
new file mode 100755 (executable)
index 0000000..db8debe
Binary files /dev/null and b/res/drawable-ldpi/ic_data_sending.png differ
diff --git a/res/drawable-ldpi/ic_data_sending_dark.png b/res/drawable-ldpi/ic_data_sending_dark.png
new file mode 100755 (executable)
index 0000000..17f98de
Binary files /dev/null and b/res/drawable-ldpi/ic_data_sending_dark.png differ
diff --git a/res/drawable-ldpi/ic_data_sending_disable.png b/res/drawable-ldpi/ic_data_sending_disable.png
new file mode 100755 (executable)
index 0000000..6b784ef
Binary files /dev/null and b/res/drawable-ldpi/ic_data_sending_disable.png differ
diff --git a/res/drawable-ldpi/ic_data_transmission.png b/res/drawable-ldpi/ic_data_transmission.png
new file mode 100755 (executable)
index 0000000..ff6c5eb
Binary files /dev/null and b/res/drawable-ldpi/ic_data_transmission.png differ
diff --git a/res/drawable-ldpi/ic_data_transmission_dark.png b/res/drawable-ldpi/ic_data_transmission_dark.png
new file mode 100755 (executable)
index 0000000..df3694d
Binary files /dev/null and b/res/drawable-ldpi/ic_data_transmission_dark.png differ
diff --git a/res/drawable-ldpi/ic_data_transmission_disable.png b/res/drawable-ldpi/ic_data_transmission_disable.png
new file mode 100755 (executable)
index 0000000..e5bfdf1
Binary files /dev/null and b/res/drawable-ldpi/ic_data_transmission_disable.png differ
diff --git a/res/drawable-ldpi/ic_device.png b/res/drawable-ldpi/ic_device.png
new file mode 100755 (executable)
index 0000000..588489a
Binary files /dev/null and b/res/drawable-ldpi/ic_device.png differ
diff --git a/res/drawable-ldpi/ic_device_control.png b/res/drawable-ldpi/ic_device_control.png
new file mode 100755 (executable)
index 0000000..12e64af
Binary files /dev/null and b/res/drawable-ldpi/ic_device_control.png differ
diff --git a/res/drawable-ldpi/ic_device_control_dark.png b/res/drawable-ldpi/ic_device_control_dark.png
new file mode 100755 (executable)
index 0000000..28c9bf2
Binary files /dev/null and b/res/drawable-ldpi/ic_device_control_dark.png differ
diff --git a/res/drawable-ldpi/ic_device_control_disable.png b/res/drawable-ldpi/ic_device_control_disable.png
new file mode 100755 (executable)
index 0000000..6e32d58
Binary files /dev/null and b/res/drawable-ldpi/ic_device_control_disable.png differ
diff --git a/res/drawable-ldpi/ic_device_dark.png b/res/drawable-ldpi/ic_device_dark.png
new file mode 100755 (executable)
index 0000000..daf9131
Binary files /dev/null and b/res/drawable-ldpi/ic_device_dark.png differ
diff --git a/res/drawable-ldpi/ic_device_disable.png b/res/drawable-ldpi/ic_device_disable.png
new file mode 100755 (executable)
index 0000000..4b743f2
Binary files /dev/null and b/res/drawable-ldpi/ic_device_disable.png differ
diff --git a/res/drawable-ldpi/ic_device_drawer.png b/res/drawable-ldpi/ic_device_drawer.png
new file mode 100755 (executable)
index 0000000..630a5dd
Binary files /dev/null and b/res/drawable-ldpi/ic_device_drawer.png differ
diff --git a/res/drawable-ldpi/ic_disturb.png b/res/drawable-ldpi/ic_disturb.png
new file mode 100755 (executable)
index 0000000..1390b80
Binary files /dev/null and b/res/drawable-ldpi/ic_disturb.png differ
diff --git a/res/drawable-ldpi/ic_disturb_dark.png b/res/drawable-ldpi/ic_disturb_dark.png
new file mode 100755 (executable)
index 0000000..a2410f2
Binary files /dev/null and b/res/drawable-ldpi/ic_disturb_dark.png differ
diff --git a/res/drawable-ldpi/ic_disturb_disable.png b/res/drawable-ldpi/ic_disturb_disable.png
new file mode 100755 (executable)
index 0000000..47921aa
Binary files /dev/null and b/res/drawable-ldpi/ic_disturb_disable.png differ
diff --git a/res/drawable-ldpi/ic_files.png b/res/drawable-ldpi/ic_files.png
new file mode 100755 (executable)
index 0000000..bb33e2d
Binary files /dev/null and b/res/drawable-ldpi/ic_files.png differ
diff --git a/res/drawable-ldpi/ic_files_dark.png b/res/drawable-ldpi/ic_files_dark.png
new file mode 100755 (executable)
index 0000000..0e03ff8
Binary files /dev/null and b/res/drawable-ldpi/ic_files_dark.png differ
diff --git a/res/drawable-ldpi/ic_files_disable.png b/res/drawable-ldpi/ic_files_disable.png
new file mode 100755 (executable)
index 0000000..dc43a37
Binary files /dev/null and b/res/drawable-ldpi/ic_files_disable.png differ
diff --git a/res/drawable-ldpi/ic_files_edit.png b/res/drawable-ldpi/ic_files_edit.png
new file mode 100755 (executable)
index 0000000..80ee771
Binary files /dev/null and b/res/drawable-ldpi/ic_files_edit.png differ
diff --git a/res/drawable-ldpi/ic_files_edit_dark.png b/res/drawable-ldpi/ic_files_edit_dark.png
new file mode 100755 (executable)
index 0000000..9a040c0
Binary files /dev/null and b/res/drawable-ldpi/ic_files_edit_dark.png differ
diff --git a/res/drawable-ldpi/ic_files_edit_disable.png b/res/drawable-ldpi/ic_files_edit_disable.png
new file mode 100755 (executable)
index 0000000..84c102f
Binary files /dev/null and b/res/drawable-ldpi/ic_files_edit_disable.png differ
diff --git a/res/drawable-ldpi/ic_launcher.png b/res/drawable-ldpi/ic_launcher.png
new file mode 100644 (file)
index 0000000..0ab00a6
Binary files /dev/null and b/res/drawable-ldpi/ic_launcher.png differ
diff --git a/res/drawable-ldpi/ic_location.png b/res/drawable-ldpi/ic_location.png
new file mode 100755 (executable)
index 0000000..8b98b6e
Binary files /dev/null and b/res/drawable-ldpi/ic_location.png differ
diff --git a/res/drawable-ldpi/ic_location_dark.png b/res/drawable-ldpi/ic_location_dark.png
new file mode 100755 (executable)
index 0000000..02b5874
Binary files /dev/null and b/res/drawable-ldpi/ic_location_dark.png differ
diff --git a/res/drawable-ldpi/ic_location_disable.png b/res/drawable-ldpi/ic_location_disable.png
new file mode 100755 (executable)
index 0000000..4328af5
Binary files /dev/null and b/res/drawable-ldpi/ic_location_disable.png differ
diff --git a/res/drawable-ldpi/ic_profile_drawer.png b/res/drawable-ldpi/ic_profile_drawer.png
new file mode 100755 (executable)
index 0000000..0c0303e
Binary files /dev/null and b/res/drawable-ldpi/ic_profile_drawer.png differ
diff --git a/res/drawable-ldpi/ic_sms.png b/res/drawable-ldpi/ic_sms.png
new file mode 100755 (executable)
index 0000000..438ff61
Binary files /dev/null and b/res/drawable-ldpi/ic_sms.png differ
diff --git a/res/drawable-ldpi/ic_sms_dark.png b/res/drawable-ldpi/ic_sms_dark.png
new file mode 100755 (executable)
index 0000000..cf20ab3
Binary files /dev/null and b/res/drawable-ldpi/ic_sms_dark.png differ
diff --git a/res/drawable-ldpi/ic_sms_disable.png b/res/drawable-ldpi/ic_sms_disable.png
new file mode 100755 (executable)
index 0000000..fe80788
Binary files /dev/null and b/res/drawable-ldpi/ic_sms_disable.png differ
diff --git a/res/drawable-ldpi/ic_system.png b/res/drawable-ldpi/ic_system.png
new file mode 100644 (file)
index 0000000..6587fa0
Binary files /dev/null and b/res/drawable-ldpi/ic_system.png differ
diff --git a/res/drawable-ldpi/ic_system_dark.png b/res/drawable-ldpi/ic_system_dark.png
new file mode 100644 (file)
index 0000000..b2f9d80
Binary files /dev/null and b/res/drawable-ldpi/ic_system_dark.png differ
diff --git a/res/drawable-ldpi/ic_system_disable.png b/res/drawable-ldpi/ic_system_disable.png
new file mode 100644 (file)
index 0000000..379f5f1
Binary files /dev/null and b/res/drawable-ldpi/ic_system_disable.png differ
diff --git a/res/drawable-ldpi/ic_system_red.png b/res/drawable-ldpi/ic_system_red.png
new file mode 100644 (file)
index 0000000..ed0a4f4
Binary files /dev/null and b/res/drawable-ldpi/ic_system_red.png differ
diff --git a/res/drawable-ldpi/ic_system_red_dark.png b/res/drawable-ldpi/ic_system_red_dark.png
new file mode 100644 (file)
index 0000000..3626302
Binary files /dev/null and b/res/drawable-ldpi/ic_system_red_dark.png differ
diff --git a/res/drawable-ldpi/ic_system_red_disable.png b/res/drawable-ldpi/ic_system_red_disable.png
new file mode 100644 (file)
index 0000000..85b570a
Binary files /dev/null and b/res/drawable-ldpi/ic_system_red_disable.png differ
diff --git a/res/drawable-ldpi/ic_wallet_drawer.png b/res/drawable-ldpi/ic_wallet_drawer.png
new file mode 100755 (executable)
index 0000000..d44453a
Binary files /dev/null and b/res/drawable-ldpi/ic_wallet_drawer.png differ
diff --git a/res/drawable-ldpi/ic_warning_drawer.png b/res/drawable-ldpi/ic_warning_drawer.png
new file mode 100755 (executable)
index 0000000..ac6cf35
Binary files /dev/null and b/res/drawable-ldpi/ic_warning_drawer.png differ
diff --git a/res/drawable-ldpi/ic_wiretapping.png b/res/drawable-ldpi/ic_wiretapping.png
new file mode 100755 (executable)
index 0000000..16c972b
Binary files /dev/null and b/res/drawable-ldpi/ic_wiretapping.png differ
diff --git a/res/drawable-ldpi/ic_wiretapping_dark.png b/res/drawable-ldpi/ic_wiretapping_dark.png
new file mode 100755 (executable)
index 0000000..94c2d57
Binary files /dev/null and b/res/drawable-ldpi/ic_wiretapping_dark.png differ
diff --git a/res/drawable-ldpi/ic_wiretapping_disable.png b/res/drawable-ldpi/ic_wiretapping_disable.png
new file mode 100755 (executable)
index 0000000..1679057
Binary files /dev/null and b/res/drawable-ldpi/ic_wiretapping_disable.png differ
diff --git a/res/drawable-ldpi/img_welcome_screen.png b/res/drawable-ldpi/img_welcome_screen.png
new file mode 100755 (executable)
index 0000000..3588cba
Binary files /dev/null and b/res/drawable-ldpi/img_welcome_screen.png differ
diff --git a/res/drawable-ldpi/logo_fnp.png b/res/drawable-ldpi/logo_fnp.png
new file mode 100755 (executable)
index 0000000..76cba31
Binary files /dev/null and b/res/drawable-ldpi/logo_fnp.png differ
diff --git a/res/drawable-ldpi/logo_maic.png b/res/drawable-ldpi/logo_maic.png
new file mode 100755 (executable)
index 0000000..943d377
Binary files /dev/null and b/res/drawable-ldpi/logo_maic.png differ
diff --git a/res/drawable-ldpi/logo_samsung.png b/res/drawable-ldpi/logo_samsung.png
new file mode 100755 (executable)
index 0000000..8b46cd0
Binary files /dev/null and b/res/drawable-ldpi/logo_samsung.png differ
diff --git a/res/drawable-mdpi/btn_co_moge_normal.png b/res/drawable-mdpi/btn_co_moge_normal.png
new file mode 100644 (file)
index 0000000..53e01a3
Binary files /dev/null and b/res/drawable-mdpi/btn_co_moge_normal.png differ
diff --git a/res/drawable-mdpi/btn_co_moge_pressed.png b/res/drawable-mdpi/btn_co_moge_pressed.png
new file mode 100644 (file)
index 0000000..de229f5
Binary files /dev/null and b/res/drawable-mdpi/btn_co_moge_pressed.png differ
diff --git a/res/drawable-mdpi/btn_legenda_normal.png b/res/drawable-mdpi/btn_legenda_normal.png
new file mode 100644 (file)
index 0000000..65c4325
Binary files /dev/null and b/res/drawable-mdpi/btn_legenda_normal.png differ
diff --git a/res/drawable-mdpi/btn_legenda_pressed.png b/res/drawable-mdpi/btn_legenda_pressed.png
new file mode 100644 (file)
index 0000000..ceff041
Binary files /dev/null and b/res/drawable-mdpi/btn_legenda_pressed.png differ
diff --git a/res/drawable-mdpi/btn_odinstaluj_normal.png b/res/drawable-mdpi/btn_odinstaluj_normal.png
new file mode 100644 (file)
index 0000000..e465020
Binary files /dev/null and b/res/drawable-mdpi/btn_odinstaluj_normal.png differ
diff --git a/res/drawable-mdpi/btn_odinstaluj_pressed.png b/res/drawable-mdpi/btn_odinstaluj_pressed.png
new file mode 100644 (file)
index 0000000..35e5e79
Binary files /dev/null and b/res/drawable-mdpi/btn_odinstaluj_pressed.png differ
diff --git a/res/drawable-mdpi/btn_ok_normal.png b/res/drawable-mdpi/btn_ok_normal.png
new file mode 100755 (executable)
index 0000000..0c257bb
Binary files /dev/null and b/res/drawable-mdpi/btn_ok_normal.png differ
diff --git a/res/drawable-mdpi/btn_ok_pressed.png b/res/drawable-mdpi/btn_ok_pressed.png
new file mode 100755 (executable)
index 0000000..af417c0
Binary files /dev/null and b/res/drawable-mdpi/btn_ok_pressed.png differ
diff --git a/res/drawable-mdpi/btn_powrot_normal.png b/res/drawable-mdpi/btn_powrot_normal.png
new file mode 100644 (file)
index 0000000..5fa28ad
Binary files /dev/null and b/res/drawable-mdpi/btn_powrot_normal.png differ
diff --git a/res/drawable-mdpi/btn_powrot_pressed.png b/res/drawable-mdpi/btn_powrot_pressed.png
new file mode 100644 (file)
index 0000000..1920f0f
Binary files /dev/null and b/res/drawable-mdpi/btn_powrot_pressed.png differ
diff --git a/res/drawable-mdpi/btn_ustawienia_normal.png b/res/drawable-mdpi/btn_ustawienia_normal.png
new file mode 100644 (file)
index 0000000..798fc3d
Binary files /dev/null and b/res/drawable-mdpi/btn_ustawienia_normal.png differ
diff --git a/res/drawable-mdpi/btn_ustawienia_pressed.png b/res/drawable-mdpi/btn_ustawienia_pressed.png
new file mode 100644 (file)
index 0000000..307fdf7
Binary files /dev/null and b/res/drawable-mdpi/btn_ustawienia_pressed.png differ
diff --git a/res/drawable-mdpi/btn_wiecej_info_normal.png b/res/drawable-mdpi/btn_wiecej_info_normal.png
new file mode 100644 (file)
index 0000000..3c9044f
Binary files /dev/null and b/res/drawable-mdpi/btn_wiecej_info_normal.png differ
diff --git a/res/drawable-mdpi/btn_wiecej_info_pressed.png b/res/drawable-mdpi/btn_wiecej_info_pressed.png
new file mode 100644 (file)
index 0000000..6ce433f
Binary files /dev/null and b/res/drawable-mdpi/btn_wiecej_info_pressed.png differ
diff --git a/res/drawable-mdpi/drawer_shadow.9.png b/res/drawable-mdpi/drawer_shadow.9.png
new file mode 100644 (file)
index 0000000..ffe3a28
Binary files /dev/null and b/res/drawable-mdpi/drawer_shadow.9.png differ
diff --git a/res/drawable-mdpi/ic_broke.png b/res/drawable-mdpi/ic_broke.png
new file mode 100755 (executable)
index 0000000..e9a3ade
Binary files /dev/null and b/res/drawable-mdpi/ic_broke.png differ
diff --git a/res/drawable-mdpi/ic_broke_dark.png b/res/drawable-mdpi/ic_broke_dark.png
new file mode 100755 (executable)
index 0000000..7fc327a
Binary files /dev/null and b/res/drawable-mdpi/ic_broke_dark.png differ
diff --git a/res/drawable-mdpi/ic_broke_disable.png b/res/drawable-mdpi/ic_broke_disable.png
new file mode 100755 (executable)
index 0000000..9b8aabf
Binary files /dev/null and b/res/drawable-mdpi/ic_broke_disable.png differ
diff --git a/res/drawable-mdpi/ic_call.png b/res/drawable-mdpi/ic_call.png
new file mode 100755 (executable)
index 0000000..e79dbc0
Binary files /dev/null and b/res/drawable-mdpi/ic_call.png differ
diff --git a/res/drawable-mdpi/ic_call_dark.png b/res/drawable-mdpi/ic_call_dark.png
new file mode 100755 (executable)
index 0000000..ea8ff9e
Binary files /dev/null and b/res/drawable-mdpi/ic_call_dark.png differ
diff --git a/res/drawable-mdpi/ic_call_disable.png b/res/drawable-mdpi/ic_call_disable.png
new file mode 100755 (executable)
index 0000000..ace654e
Binary files /dev/null and b/res/drawable-mdpi/ic_call_disable.png differ
diff --git a/res/drawable-mdpi/ic_call_history.png b/res/drawable-mdpi/ic_call_history.png
new file mode 100755 (executable)
index 0000000..e55e370
Binary files /dev/null and b/res/drawable-mdpi/ic_call_history.png differ
diff --git a/res/drawable-mdpi/ic_call_history_dark.png b/res/drawable-mdpi/ic_call_history_dark.png
new file mode 100755 (executable)
index 0000000..1ad1e81
Binary files /dev/null and b/res/drawable-mdpi/ic_call_history_dark.png differ
diff --git a/res/drawable-mdpi/ic_call_history_disable.png b/res/drawable-mdpi/ic_call_history_disable.png
new file mode 100755 (executable)
index 0000000..b0ec11f
Binary files /dev/null and b/res/drawable-mdpi/ic_call_history_disable.png differ
diff --git a/res/drawable-mdpi/ic_communication.png b/res/drawable-mdpi/ic_communication.png
new file mode 100755 (executable)
index 0000000..f2f5441
Binary files /dev/null and b/res/drawable-mdpi/ic_communication.png differ
diff --git a/res/drawable-mdpi/ic_communication_dark.png b/res/drawable-mdpi/ic_communication_dark.png
new file mode 100755 (executable)
index 0000000..2b636a7
Binary files /dev/null and b/res/drawable-mdpi/ic_communication_dark.png differ
diff --git a/res/drawable-mdpi/ic_communication_disable.png b/res/drawable-mdpi/ic_communication_disable.png
new file mode 100755 (executable)
index 0000000..a6478aa
Binary files /dev/null and b/res/drawable-mdpi/ic_communication_disable.png differ
diff --git a/res/drawable-mdpi/ic_cyber_profile.png b/res/drawable-mdpi/ic_cyber_profile.png
new file mode 100755 (executable)
index 0000000..75b13fd
Binary files /dev/null and b/res/drawable-mdpi/ic_cyber_profile.png differ
diff --git a/res/drawable-mdpi/ic_cyber_profile_dark.png b/res/drawable-mdpi/ic_cyber_profile_dark.png
new file mode 100755 (executable)
index 0000000..9f338a9
Binary files /dev/null and b/res/drawable-mdpi/ic_cyber_profile_dark.png differ
diff --git a/res/drawable-mdpi/ic_cyber_profile_disable.png b/res/drawable-mdpi/ic_cyber_profile_disable.png
new file mode 100755 (executable)
index 0000000..8afb6d8
Binary files /dev/null and b/res/drawable-mdpi/ic_cyber_profile_disable.png differ
diff --git a/res/drawable-mdpi/ic_data_sending.png b/res/drawable-mdpi/ic_data_sending.png
new file mode 100755 (executable)
index 0000000..3d96287
Binary files /dev/null and b/res/drawable-mdpi/ic_data_sending.png differ
diff --git a/res/drawable-mdpi/ic_data_sending_dark.png b/res/drawable-mdpi/ic_data_sending_dark.png
new file mode 100755 (executable)
index 0000000..a43ba11
Binary files /dev/null and b/res/drawable-mdpi/ic_data_sending_dark.png differ
diff --git a/res/drawable-mdpi/ic_data_sending_disable.png b/res/drawable-mdpi/ic_data_sending_disable.png
new file mode 100755 (executable)
index 0000000..7d5858d
Binary files /dev/null and b/res/drawable-mdpi/ic_data_sending_disable.png differ
diff --git a/res/drawable-mdpi/ic_data_transmission.png b/res/drawable-mdpi/ic_data_transmission.png
new file mode 100755 (executable)
index 0000000..25e7b80
Binary files /dev/null and b/res/drawable-mdpi/ic_data_transmission.png differ
diff --git a/res/drawable-mdpi/ic_data_transmission_dark.png b/res/drawable-mdpi/ic_data_transmission_dark.png
new file mode 100755 (executable)
index 0000000..c889de1
Binary files /dev/null and b/res/drawable-mdpi/ic_data_transmission_dark.png differ
diff --git a/res/drawable-mdpi/ic_data_transmission_disable.png b/res/drawable-mdpi/ic_data_transmission_disable.png
new file mode 100755 (executable)
index 0000000..c112a7f
Binary files /dev/null and b/res/drawable-mdpi/ic_data_transmission_disable.png differ
diff --git a/res/drawable-mdpi/ic_device.png b/res/drawable-mdpi/ic_device.png
new file mode 100755 (executable)
index 0000000..90c5b8d
Binary files /dev/null and b/res/drawable-mdpi/ic_device.png differ
diff --git a/res/drawable-mdpi/ic_device_control.png b/res/drawable-mdpi/ic_device_control.png
new file mode 100755 (executable)
index 0000000..80dce48
Binary files /dev/null and b/res/drawable-mdpi/ic_device_control.png differ
diff --git a/res/drawable-mdpi/ic_device_control_dark.png b/res/drawable-mdpi/ic_device_control_dark.png
new file mode 100755 (executable)
index 0000000..35b03a7
Binary files /dev/null and b/res/drawable-mdpi/ic_device_control_dark.png differ
diff --git a/res/drawable-mdpi/ic_device_control_disable.png b/res/drawable-mdpi/ic_device_control_disable.png
new file mode 100755 (executable)
index 0000000..b945efa
Binary files /dev/null and b/res/drawable-mdpi/ic_device_control_disable.png differ
diff --git a/res/drawable-mdpi/ic_device_dark.png b/res/drawable-mdpi/ic_device_dark.png
new file mode 100755 (executable)
index 0000000..3aaced0
Binary files /dev/null and b/res/drawable-mdpi/ic_device_dark.png differ
diff --git a/res/drawable-mdpi/ic_device_disable.png b/res/drawable-mdpi/ic_device_disable.png
new file mode 100755 (executable)
index 0000000..e9e6fe6
Binary files /dev/null and b/res/drawable-mdpi/ic_device_disable.png differ
diff --git a/res/drawable-mdpi/ic_device_drawer.png b/res/drawable-mdpi/ic_device_drawer.png
new file mode 100755 (executable)
index 0000000..32c5be8
Binary files /dev/null and b/res/drawable-mdpi/ic_device_drawer.png differ
diff --git a/res/drawable-mdpi/ic_disturb.png b/res/drawable-mdpi/ic_disturb.png
new file mode 100755 (executable)
index 0000000..9860183
Binary files /dev/null and b/res/drawable-mdpi/ic_disturb.png differ
diff --git a/res/drawable-mdpi/ic_disturb_dark.png b/res/drawable-mdpi/ic_disturb_dark.png
new file mode 100755 (executable)
index 0000000..5110a8d
Binary files /dev/null and b/res/drawable-mdpi/ic_disturb_dark.png differ
diff --git a/res/drawable-mdpi/ic_disturb_disable.png b/res/drawable-mdpi/ic_disturb_disable.png
new file mode 100755 (executable)
index 0000000..8a3ff91
Binary files /dev/null and b/res/drawable-mdpi/ic_disturb_disable.png differ
diff --git a/res/drawable-mdpi/ic_drawer.png b/res/drawable-mdpi/ic_drawer.png
new file mode 100644 (file)
index 0000000..831f763
Binary files /dev/null and b/res/drawable-mdpi/ic_drawer.png differ
diff --git a/res/drawable-mdpi/ic_files.png b/res/drawable-mdpi/ic_files.png
new file mode 100755 (executable)
index 0000000..0a05c91
Binary files /dev/null and b/res/drawable-mdpi/ic_files.png differ
diff --git a/res/drawable-mdpi/ic_files_dark.png b/res/drawable-mdpi/ic_files_dark.png
new file mode 100755 (executable)
index 0000000..84cb78e
Binary files /dev/null and b/res/drawable-mdpi/ic_files_dark.png differ
diff --git a/res/drawable-mdpi/ic_files_disable.png b/res/drawable-mdpi/ic_files_disable.png
new file mode 100755 (executable)
index 0000000..cd75904
Binary files /dev/null and b/res/drawable-mdpi/ic_files_disable.png differ
diff --git a/res/drawable-mdpi/ic_files_edit.png b/res/drawable-mdpi/ic_files_edit.png
new file mode 100755 (executable)
index 0000000..a5e90bc
Binary files /dev/null and b/res/drawable-mdpi/ic_files_edit.png differ
diff --git a/res/drawable-mdpi/ic_files_edit_dark.png b/res/drawable-mdpi/ic_files_edit_dark.png
new file mode 100755 (executable)
index 0000000..c383b79
Binary files /dev/null and b/res/drawable-mdpi/ic_files_edit_dark.png differ
diff --git a/res/drawable-mdpi/ic_files_edit_disable.png b/res/drawable-mdpi/ic_files_edit_disable.png
new file mode 100755 (executable)
index 0000000..3c96918
Binary files /dev/null and b/res/drawable-mdpi/ic_files_edit_disable.png differ
diff --git a/res/drawable-mdpi/ic_launcher.png b/res/drawable-mdpi/ic_launcher.png
new file mode 100644 (file)
index 0000000..a451e1b
Binary files /dev/null and b/res/drawable-mdpi/ic_launcher.png differ
diff --git a/res/drawable-mdpi/ic_location.png b/res/drawable-mdpi/ic_location.png
new file mode 100755 (executable)
index 0000000..33b8d89
Binary files /dev/null and b/res/drawable-mdpi/ic_location.png differ
diff --git a/res/drawable-mdpi/ic_location_dark.png b/res/drawable-mdpi/ic_location_dark.png
new file mode 100755 (executable)
index 0000000..03006be
Binary files /dev/null and b/res/drawable-mdpi/ic_location_dark.png differ
diff --git a/res/drawable-mdpi/ic_location_disable.png b/res/drawable-mdpi/ic_location_disable.png
new file mode 100755 (executable)
index 0000000..147d3cc
Binary files /dev/null and b/res/drawable-mdpi/ic_location_disable.png differ
diff --git a/res/drawable-mdpi/ic_profile_drawer.png b/res/drawable-mdpi/ic_profile_drawer.png
new file mode 100755 (executable)
index 0000000..684ea8c
Binary files /dev/null and b/res/drawable-mdpi/ic_profile_drawer.png differ
diff --git a/res/drawable-mdpi/ic_sms.png b/res/drawable-mdpi/ic_sms.png
new file mode 100755 (executable)
index 0000000..93a2177
Binary files /dev/null and b/res/drawable-mdpi/ic_sms.png differ
diff --git a/res/drawable-mdpi/ic_sms_dark.png b/res/drawable-mdpi/ic_sms_dark.png
new file mode 100755 (executable)
index 0000000..99b4512
Binary files /dev/null and b/res/drawable-mdpi/ic_sms_dark.png differ
diff --git a/res/drawable-mdpi/ic_sms_disable.png b/res/drawable-mdpi/ic_sms_disable.png
new file mode 100755 (executable)
index 0000000..bfc2ca5
Binary files /dev/null and b/res/drawable-mdpi/ic_sms_disable.png differ
diff --git a/res/drawable-mdpi/ic_system.png b/res/drawable-mdpi/ic_system.png
new file mode 100644 (file)
index 0000000..5af7ad5
Binary files /dev/null and b/res/drawable-mdpi/ic_system.png differ
diff --git a/res/drawable-mdpi/ic_system_dark.png b/res/drawable-mdpi/ic_system_dark.png
new file mode 100644 (file)
index 0000000..906ab2a
Binary files /dev/null and b/res/drawable-mdpi/ic_system_dark.png differ
diff --git a/res/drawable-mdpi/ic_system_disable.png b/res/drawable-mdpi/ic_system_disable.png
new file mode 100644 (file)
index 0000000..4fdcd52
Binary files /dev/null and b/res/drawable-mdpi/ic_system_disable.png differ
diff --git a/res/drawable-mdpi/ic_system_red.png b/res/drawable-mdpi/ic_system_red.png
new file mode 100644 (file)
index 0000000..c0336a9
Binary files /dev/null and b/res/drawable-mdpi/ic_system_red.png differ
diff --git a/res/drawable-mdpi/ic_system_red_dark.png b/res/drawable-mdpi/ic_system_red_dark.png
new file mode 100644 (file)
index 0000000..8166827
Binary files /dev/null and b/res/drawable-mdpi/ic_system_red_dark.png differ
diff --git a/res/drawable-mdpi/ic_system_red_disable.png b/res/drawable-mdpi/ic_system_red_disable.png
new file mode 100644 (file)
index 0000000..41258d0
Binary files /dev/null and b/res/drawable-mdpi/ic_system_red_disable.png differ
diff --git a/res/drawable-mdpi/ic_wallet_drawer.png b/res/drawable-mdpi/ic_wallet_drawer.png
new file mode 100755 (executable)
index 0000000..2cc1802
Binary files /dev/null and b/res/drawable-mdpi/ic_wallet_drawer.png differ
diff --git a/res/drawable-mdpi/ic_warning_drawer.png b/res/drawable-mdpi/ic_warning_drawer.png
new file mode 100755 (executable)
index 0000000..980254f
Binary files /dev/null and b/res/drawable-mdpi/ic_warning_drawer.png differ
diff --git a/res/drawable-mdpi/ic_wiretapping.png b/res/drawable-mdpi/ic_wiretapping.png
new file mode 100755 (executable)
index 0000000..b149489
Binary files /dev/null and b/res/drawable-mdpi/ic_wiretapping.png differ
diff --git a/res/drawable-mdpi/ic_wiretapping_dark.png b/res/drawable-mdpi/ic_wiretapping_dark.png
new file mode 100755 (executable)
index 0000000..ff28acf
Binary files /dev/null and b/res/drawable-mdpi/ic_wiretapping_dark.png differ
diff --git a/res/drawable-mdpi/ic_wiretapping_disable.png b/res/drawable-mdpi/ic_wiretapping_disable.png
new file mode 100755 (executable)
index 0000000..08800d8
Binary files /dev/null and b/res/drawable-mdpi/ic_wiretapping_disable.png differ
diff --git a/res/drawable-mdpi/img_welcome_screen.png b/res/drawable-mdpi/img_welcome_screen.png
new file mode 100755 (executable)
index 0000000..e20f677
Binary files /dev/null and b/res/drawable-mdpi/img_welcome_screen.png differ
diff --git a/res/drawable-mdpi/logo_fnp.png b/res/drawable-mdpi/logo_fnp.png
new file mode 100755 (executable)
index 0000000..5828a2c
Binary files /dev/null and b/res/drawable-mdpi/logo_fnp.png differ
diff --git a/res/drawable-mdpi/logo_maic.png b/res/drawable-mdpi/logo_maic.png
new file mode 100755 (executable)
index 0000000..0f8c67a
Binary files /dev/null and b/res/drawable-mdpi/logo_maic.png differ
diff --git a/res/drawable-mdpi/logo_samsung.png b/res/drawable-mdpi/logo_samsung.png
new file mode 100755 (executable)
index 0000000..4aa5ff0
Binary files /dev/null and b/res/drawable-mdpi/logo_samsung.png differ
diff --git a/res/drawable-nodpi/nav_drawer_separator.9.png b/res/drawable-nodpi/nav_drawer_separator.9.png
new file mode 100644 (file)
index 0000000..f1466ba
Binary files /dev/null and b/res/drawable-nodpi/nav_drawer_separator.9.png differ
diff --git a/res/drawable-xhdpi/btn_co_moge_normal.png b/res/drawable-xhdpi/btn_co_moge_normal.png
new file mode 100644 (file)
index 0000000..46deabb
Binary files /dev/null and b/res/drawable-xhdpi/btn_co_moge_normal.png differ
diff --git a/res/drawable-xhdpi/btn_co_moge_pressed.png b/res/drawable-xhdpi/btn_co_moge_pressed.png
new file mode 100644 (file)
index 0000000..dfbc1f5
Binary files /dev/null and b/res/drawable-xhdpi/btn_co_moge_pressed.png differ
diff --git a/res/drawable-xhdpi/btn_legenda_normal.png b/res/drawable-xhdpi/btn_legenda_normal.png
new file mode 100644 (file)
index 0000000..9eeae1a
Binary files /dev/null and b/res/drawable-xhdpi/btn_legenda_normal.png differ
diff --git a/res/drawable-xhdpi/btn_legenda_pressed.png b/res/drawable-xhdpi/btn_legenda_pressed.png
new file mode 100644 (file)
index 0000000..d56f615
Binary files /dev/null and b/res/drawable-xhdpi/btn_legenda_pressed.png differ
diff --git a/res/drawable-xhdpi/btn_odinstaluj_normal.png b/res/drawable-xhdpi/btn_odinstaluj_normal.png
new file mode 100644 (file)
index 0000000..14098c8
Binary files /dev/null and b/res/drawable-xhdpi/btn_odinstaluj_normal.png differ
diff --git a/res/drawable-xhdpi/btn_odinstaluj_pressed.png b/res/drawable-xhdpi/btn_odinstaluj_pressed.png
new file mode 100644 (file)
index 0000000..5f4aea1
Binary files /dev/null and b/res/drawable-xhdpi/btn_odinstaluj_pressed.png differ
diff --git a/res/drawable-xhdpi/btn_ok_normal.png b/res/drawable-xhdpi/btn_ok_normal.png
new file mode 100755 (executable)
index 0000000..c4235e6
Binary files /dev/null and b/res/drawable-xhdpi/btn_ok_normal.png differ
diff --git a/res/drawable-xhdpi/btn_ok_pressed.png b/res/drawable-xhdpi/btn_ok_pressed.png
new file mode 100755 (executable)
index 0000000..8d6efb6
Binary files /dev/null and b/res/drawable-xhdpi/btn_ok_pressed.png differ
diff --git a/res/drawable-xhdpi/btn_powrot_normal.png b/res/drawable-xhdpi/btn_powrot_normal.png
new file mode 100644 (file)
index 0000000..a475fe1
Binary files /dev/null and b/res/drawable-xhdpi/btn_powrot_normal.png differ
diff --git a/res/drawable-xhdpi/btn_powrot_pressed.png b/res/drawable-xhdpi/btn_powrot_pressed.png
new file mode 100644 (file)
index 0000000..92c6140
Binary files /dev/null and b/res/drawable-xhdpi/btn_powrot_pressed.png differ
diff --git a/res/drawable-xhdpi/btn_ustawienia_normal.png b/res/drawable-xhdpi/btn_ustawienia_normal.png
new file mode 100644 (file)
index 0000000..59343c2
Binary files /dev/null and b/res/drawable-xhdpi/btn_ustawienia_normal.png differ
diff --git a/res/drawable-xhdpi/btn_ustawienia_pressed.png b/res/drawable-xhdpi/btn_ustawienia_pressed.png
new file mode 100644 (file)
index 0000000..58c7a6f
Binary files /dev/null and b/res/drawable-xhdpi/btn_ustawienia_pressed.png differ
diff --git a/res/drawable-xhdpi/btn_wiecej_info_normal.png b/res/drawable-xhdpi/btn_wiecej_info_normal.png
new file mode 100644 (file)
index 0000000..bdbe35f
Binary files /dev/null and b/res/drawable-xhdpi/btn_wiecej_info_normal.png differ
diff --git a/res/drawable-xhdpi/btn_wiecej_info_pressed.png b/res/drawable-xhdpi/btn_wiecej_info_pressed.png
new file mode 100644 (file)
index 0000000..be11f9f
Binary files /dev/null and b/res/drawable-xhdpi/btn_wiecej_info_pressed.png differ
diff --git a/res/drawable-xhdpi/drawer_shadow.9.png b/res/drawable-xhdpi/drawer_shadow.9.png
new file mode 100644 (file)
index 0000000..fabe9d9
Binary files /dev/null and b/res/drawable-xhdpi/drawer_shadow.9.png differ
diff --git a/res/drawable-xhdpi/ic_broke.png b/res/drawable-xhdpi/ic_broke.png
new file mode 100755 (executable)
index 0000000..741aa04
Binary files /dev/null and b/res/drawable-xhdpi/ic_broke.png differ
diff --git a/res/drawable-xhdpi/ic_broke_dark.png b/res/drawable-xhdpi/ic_broke_dark.png
new file mode 100755 (executable)
index 0000000..14437e9
Binary files /dev/null and b/res/drawable-xhdpi/ic_broke_dark.png differ
diff --git a/res/drawable-xhdpi/ic_broke_disable.png b/res/drawable-xhdpi/ic_broke_disable.png
new file mode 100755 (executable)
index 0000000..4c85b6c
Binary files /dev/null and b/res/drawable-xhdpi/ic_broke_disable.png differ
diff --git a/res/drawable-xhdpi/ic_call.png b/res/drawable-xhdpi/ic_call.png
new file mode 100755 (executable)
index 0000000..70c03a0
Binary files /dev/null and b/res/drawable-xhdpi/ic_call.png differ
diff --git a/res/drawable-xhdpi/ic_call_dark.png b/res/drawable-xhdpi/ic_call_dark.png
new file mode 100755 (executable)
index 0000000..05a6031
Binary files /dev/null and b/res/drawable-xhdpi/ic_call_dark.png differ
diff --git a/res/drawable-xhdpi/ic_call_disable.png b/res/drawable-xhdpi/ic_call_disable.png
new file mode 100755 (executable)
index 0000000..ccf68a9
Binary files /dev/null and b/res/drawable-xhdpi/ic_call_disable.png differ
diff --git a/res/drawable-xhdpi/ic_call_history.png b/res/drawable-xhdpi/ic_call_history.png
new file mode 100755 (executable)
index 0000000..0a0e65a
Binary files /dev/null and b/res/drawable-xhdpi/ic_call_history.png differ
diff --git a/res/drawable-xhdpi/ic_call_history_dark.png b/res/drawable-xhdpi/ic_call_history_dark.png
new file mode 100755 (executable)
index 0000000..5a9b564
Binary files /dev/null and b/res/drawable-xhdpi/ic_call_history_dark.png differ
diff --git a/res/drawable-xhdpi/ic_call_history_disable.png b/res/drawable-xhdpi/ic_call_history_disable.png
new file mode 100755 (executable)
index 0000000..c7d283e
Binary files /dev/null and b/res/drawable-xhdpi/ic_call_history_disable.png differ
diff --git a/res/drawable-xhdpi/ic_communication.png b/res/drawable-xhdpi/ic_communication.png
new file mode 100755 (executable)
index 0000000..85c6e15
Binary files /dev/null and b/res/drawable-xhdpi/ic_communication.png differ
diff --git a/res/drawable-xhdpi/ic_communication_dark.png b/res/drawable-xhdpi/ic_communication_dark.png
new file mode 100755 (executable)
index 0000000..22bbef2
Binary files /dev/null and b/res/drawable-xhdpi/ic_communication_dark.png differ
diff --git a/res/drawable-xhdpi/ic_communication_disable.png b/res/drawable-xhdpi/ic_communication_disable.png
new file mode 100755 (executable)
index 0000000..9e53406
Binary files /dev/null and b/res/drawable-xhdpi/ic_communication_disable.png differ
diff --git a/res/drawable-xhdpi/ic_cyber_profile.png b/res/drawable-xhdpi/ic_cyber_profile.png
new file mode 100755 (executable)
index 0000000..4f16564
Binary files /dev/null and b/res/drawable-xhdpi/ic_cyber_profile.png differ
diff --git a/res/drawable-xhdpi/ic_cyber_profile_dark.png b/res/drawable-xhdpi/ic_cyber_profile_dark.png
new file mode 100755 (executable)
index 0000000..3186d26
Binary files /dev/null and b/res/drawable-xhdpi/ic_cyber_profile_dark.png differ
diff --git a/res/drawable-xhdpi/ic_cyber_profile_disable.png b/res/drawable-xhdpi/ic_cyber_profile_disable.png
new file mode 100755 (executable)
index 0000000..81cc845
Binary files /dev/null and b/res/drawable-xhdpi/ic_cyber_profile_disable.png differ
diff --git a/res/drawable-xhdpi/ic_data_sending.png b/res/drawable-xhdpi/ic_data_sending.png
new file mode 100755 (executable)
index 0000000..1e99bfa
Binary files /dev/null and b/res/drawable-xhdpi/ic_data_sending.png differ
diff --git a/res/drawable-xhdpi/ic_data_sending_dark.png b/res/drawable-xhdpi/ic_data_sending_dark.png
new file mode 100755 (executable)
index 0000000..c957ae8
Binary files /dev/null and b/res/drawable-xhdpi/ic_data_sending_dark.png differ
diff --git a/res/drawable-xhdpi/ic_data_sending_disable.png b/res/drawable-xhdpi/ic_data_sending_disable.png
new file mode 100755 (executable)
index 0000000..8f9ae29
Binary files /dev/null and b/res/drawable-xhdpi/ic_data_sending_disable.png differ
diff --git a/res/drawable-xhdpi/ic_data_transmission.png b/res/drawable-xhdpi/ic_data_transmission.png
new file mode 100755 (executable)
index 0000000..3cedd08
Binary files /dev/null and b/res/drawable-xhdpi/ic_data_transmission.png differ
diff --git a/res/drawable-xhdpi/ic_data_transmission_dark.png b/res/drawable-xhdpi/ic_data_transmission_dark.png
new file mode 100755 (executable)
index 0000000..110a0a0
Binary files /dev/null and b/res/drawable-xhdpi/ic_data_transmission_dark.png differ
diff --git a/res/drawable-xhdpi/ic_data_transmission_disable.png b/res/drawable-xhdpi/ic_data_transmission_disable.png
new file mode 100755 (executable)
index 0000000..ea29e05
Binary files /dev/null and b/res/drawable-xhdpi/ic_data_transmission_disable.png differ
diff --git a/res/drawable-xhdpi/ic_device.png b/res/drawable-xhdpi/ic_device.png
new file mode 100755 (executable)
index 0000000..a9a6708
Binary files /dev/null and b/res/drawable-xhdpi/ic_device.png differ
diff --git a/res/drawable-xhdpi/ic_device_control.png b/res/drawable-xhdpi/ic_device_control.png
new file mode 100755 (executable)
index 0000000..aa29b37
Binary files /dev/null and b/res/drawable-xhdpi/ic_device_control.png differ
diff --git a/res/drawable-xhdpi/ic_device_control_dark.png b/res/drawable-xhdpi/ic_device_control_dark.png
new file mode 100755 (executable)
index 0000000..94beb30
Binary files /dev/null and b/res/drawable-xhdpi/ic_device_control_dark.png differ
diff --git a/res/drawable-xhdpi/ic_device_control_disable.png b/res/drawable-xhdpi/ic_device_control_disable.png
new file mode 100755 (executable)
index 0000000..4972108
Binary files /dev/null and b/res/drawable-xhdpi/ic_device_control_disable.png differ
diff --git a/res/drawable-xhdpi/ic_device_dark.png b/res/drawable-xhdpi/ic_device_dark.png
new file mode 100755 (executable)
index 0000000..5a06457
Binary files /dev/null and b/res/drawable-xhdpi/ic_device_dark.png differ
diff --git a/res/drawable-xhdpi/ic_device_disable.png b/res/drawable-xhdpi/ic_device_disable.png
new file mode 100755 (executable)
index 0000000..473d15d
Binary files /dev/null and b/res/drawable-xhdpi/ic_device_disable.png differ
diff --git a/res/drawable-xhdpi/ic_device_drawer.png b/res/drawable-xhdpi/ic_device_drawer.png
new file mode 100755 (executable)
index 0000000..acc5945
Binary files /dev/null and b/res/drawable-xhdpi/ic_device_drawer.png differ
diff --git a/res/drawable-xhdpi/ic_disturb.png b/res/drawable-xhdpi/ic_disturb.png
new file mode 100755 (executable)
index 0000000..0da3a07
Binary files /dev/null and b/res/drawable-xhdpi/ic_disturb.png differ
diff --git a/res/drawable-xhdpi/ic_disturb_dark.png b/res/drawable-xhdpi/ic_disturb_dark.png
new file mode 100755 (executable)
index 0000000..8504575
Binary files /dev/null and b/res/drawable-xhdpi/ic_disturb_dark.png differ
diff --git a/res/drawable-xhdpi/ic_disturb_disable.png b/res/drawable-xhdpi/ic_disturb_disable.png
new file mode 100755 (executable)
index 0000000..944da48
Binary files /dev/null and b/res/drawable-xhdpi/ic_disturb_disable.png differ
diff --git a/res/drawable-xhdpi/ic_drawer.png b/res/drawable-xhdpi/ic_drawer.png
new file mode 100644 (file)
index 0000000..ebfbcb1
Binary files /dev/null and b/res/drawable-xhdpi/ic_drawer.png differ
diff --git a/res/drawable-xhdpi/ic_files.png b/res/drawable-xhdpi/ic_files.png
new file mode 100755 (executable)
index 0000000..30a6b64
Binary files /dev/null and b/res/drawable-xhdpi/ic_files.png differ
diff --git a/res/drawable-xhdpi/ic_files_dark.png b/res/drawable-xhdpi/ic_files_dark.png
new file mode 100755 (executable)
index 0000000..acfe4fa
Binary files /dev/null and b/res/drawable-xhdpi/ic_files_dark.png differ
diff --git a/res/drawable-xhdpi/ic_files_disable.png b/res/drawable-xhdpi/ic_files_disable.png
new file mode 100755 (executable)
index 0000000..2dab8bc
Binary files /dev/null and b/res/drawable-xhdpi/ic_files_disable.png differ
diff --git a/res/drawable-xhdpi/ic_files_edit.png b/res/drawable-xhdpi/ic_files_edit.png
new file mode 100755 (executable)
index 0000000..dcb2df7
Binary files /dev/null and b/res/drawable-xhdpi/ic_files_edit.png differ
diff --git a/res/drawable-xhdpi/ic_files_edit_dark.png b/res/drawable-xhdpi/ic_files_edit_dark.png
new file mode 100755 (executable)
index 0000000..1430b7d
Binary files /dev/null and b/res/drawable-xhdpi/ic_files_edit_dark.png differ
diff --git a/res/drawable-xhdpi/ic_files_edit_disable.png b/res/drawable-xhdpi/ic_files_edit_disable.png
new file mode 100755 (executable)
index 0000000..81045c4
Binary files /dev/null and b/res/drawable-xhdpi/ic_files_edit_disable.png differ
diff --git a/res/drawable-xhdpi/ic_launcher.png b/res/drawable-xhdpi/ic_launcher.png
new file mode 100644 (file)
index 0000000..2c9e835
Binary files /dev/null and b/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/res/drawable-xhdpi/ic_location.png b/res/drawable-xhdpi/ic_location.png
new file mode 100755 (executable)
index 0000000..96e8c07
Binary files /dev/null and b/res/drawable-xhdpi/ic_location.png differ
diff --git a/res/drawable-xhdpi/ic_location_dark.png b/res/drawable-xhdpi/ic_location_dark.png
new file mode 100755 (executable)
index 0000000..6f7b5d0
Binary files /dev/null and b/res/drawable-xhdpi/ic_location_dark.png differ
diff --git a/res/drawable-xhdpi/ic_location_disable.png b/res/drawable-xhdpi/ic_location_disable.png
new file mode 100755 (executable)
index 0000000..00f56d5
Binary files /dev/null and b/res/drawable-xhdpi/ic_location_disable.png differ
diff --git a/res/drawable-xhdpi/ic_profile_drawer.png b/res/drawable-xhdpi/ic_profile_drawer.png
new file mode 100755 (executable)
index 0000000..d645c0d
Binary files /dev/null and b/res/drawable-xhdpi/ic_profile_drawer.png differ
diff --git a/res/drawable-xhdpi/ic_sms.png b/res/drawable-xhdpi/ic_sms.png
new file mode 100755 (executable)
index 0000000..8fc7c36
Binary files /dev/null and b/res/drawable-xhdpi/ic_sms.png differ
diff --git a/res/drawable-xhdpi/ic_sms_dark.png b/res/drawable-xhdpi/ic_sms_dark.png
new file mode 100755 (executable)
index 0000000..9453062
Binary files /dev/null and b/res/drawable-xhdpi/ic_sms_dark.png differ
diff --git a/res/drawable-xhdpi/ic_sms_disable.png b/res/drawable-xhdpi/ic_sms_disable.png
new file mode 100755 (executable)
index 0000000..1ebb77f
Binary files /dev/null and b/res/drawable-xhdpi/ic_sms_disable.png differ
diff --git a/res/drawable-xhdpi/ic_system.png b/res/drawable-xhdpi/ic_system.png
new file mode 100644 (file)
index 0000000..c84a670
Binary files /dev/null and b/res/drawable-xhdpi/ic_system.png differ
diff --git a/res/drawable-xhdpi/ic_system_dark.png b/res/drawable-xhdpi/ic_system_dark.png
new file mode 100644 (file)
index 0000000..a5502e1
Binary files /dev/null and b/res/drawable-xhdpi/ic_system_dark.png differ
diff --git a/res/drawable-xhdpi/ic_system_disable.png b/res/drawable-xhdpi/ic_system_disable.png
new file mode 100644 (file)
index 0000000..c2911d8
Binary files /dev/null and b/res/drawable-xhdpi/ic_system_disable.png differ
diff --git a/res/drawable-xhdpi/ic_system_red.png b/res/drawable-xhdpi/ic_system_red.png
new file mode 100644 (file)
index 0000000..f712304
Binary files /dev/null and b/res/drawable-xhdpi/ic_system_red.png differ
diff --git a/res/drawable-xhdpi/ic_system_red_dark.png b/res/drawable-xhdpi/ic_system_red_dark.png
new file mode 100644 (file)
index 0000000..10bb5ab
Binary files /dev/null and b/res/drawable-xhdpi/ic_system_red_dark.png differ
diff --git a/res/drawable-xhdpi/ic_system_red_disable.png b/res/drawable-xhdpi/ic_system_red_disable.png
new file mode 100644 (file)
index 0000000..8880eb7
Binary files /dev/null and b/res/drawable-xhdpi/ic_system_red_disable.png differ
diff --git a/res/drawable-xhdpi/ic_wallet_drawer.png b/res/drawable-xhdpi/ic_wallet_drawer.png
new file mode 100755 (executable)
index 0000000..ba09e07
Binary files /dev/null and b/res/drawable-xhdpi/ic_wallet_drawer.png differ
diff --git a/res/drawable-xhdpi/ic_warning_drawer.png b/res/drawable-xhdpi/ic_warning_drawer.png
new file mode 100755 (executable)
index 0000000..5b8e877
Binary files /dev/null and b/res/drawable-xhdpi/ic_warning_drawer.png differ
diff --git a/res/drawable-xhdpi/ic_wiretapping.png b/res/drawable-xhdpi/ic_wiretapping.png
new file mode 100755 (executable)
index 0000000..eb7a925
Binary files /dev/null and b/res/drawable-xhdpi/ic_wiretapping.png differ
diff --git a/res/drawable-xhdpi/ic_wiretapping_dark.png b/res/drawable-xhdpi/ic_wiretapping_dark.png
new file mode 100755 (executable)
index 0000000..88a1897
Binary files /dev/null and b/res/drawable-xhdpi/ic_wiretapping_dark.png differ
diff --git a/res/drawable-xhdpi/ic_wiretapping_disable.png b/res/drawable-xhdpi/ic_wiretapping_disable.png
new file mode 100755 (executable)
index 0000000..c4eb286
Binary files /dev/null and b/res/drawable-xhdpi/ic_wiretapping_disable.png differ
diff --git a/res/drawable-xhdpi/img_welcome_screen.png b/res/drawable-xhdpi/img_welcome_screen.png
new file mode 100755 (executable)
index 0000000..8dae7f2
Binary files /dev/null and b/res/drawable-xhdpi/img_welcome_screen.png differ
diff --git a/res/drawable-xhdpi/logo_fnp.png b/res/drawable-xhdpi/logo_fnp.png
new file mode 100755 (executable)
index 0000000..52a31a7
Binary files /dev/null and b/res/drawable-xhdpi/logo_fnp.png differ
diff --git a/res/drawable-xhdpi/logo_maic.png b/res/drawable-xhdpi/logo_maic.png
new file mode 100755 (executable)
index 0000000..435584f
Binary files /dev/null and b/res/drawable-xhdpi/logo_maic.png differ
diff --git a/res/drawable-xhdpi/logo_samsung.png b/res/drawable-xhdpi/logo_samsung.png
new file mode 100755 (executable)
index 0000000..bbfe45c
Binary files /dev/null and b/res/drawable-xhdpi/logo_samsung.png differ
diff --git a/res/drawable-xxhdpi/btn_co_moge_normal.png b/res/drawable-xxhdpi/btn_co_moge_normal.png
new file mode 100644 (file)
index 0000000..ef6436d
Binary files /dev/null and b/res/drawable-xxhdpi/btn_co_moge_normal.png differ
diff --git a/res/drawable-xxhdpi/btn_co_moge_pressed.png b/res/drawable-xxhdpi/btn_co_moge_pressed.png
new file mode 100644 (file)
index 0000000..d82b5a4
Binary files /dev/null and b/res/drawable-xxhdpi/btn_co_moge_pressed.png differ
diff --git a/res/drawable-xxhdpi/btn_legenda_normal.png b/res/drawable-xxhdpi/btn_legenda_normal.png
new file mode 100644 (file)
index 0000000..eec9a8d
Binary files /dev/null and b/res/drawable-xxhdpi/btn_legenda_normal.png differ
diff --git a/res/drawable-xxhdpi/btn_legenda_pressed.png b/res/drawable-xxhdpi/btn_legenda_pressed.png
new file mode 100644 (file)
index 0000000..a5615d6
Binary files /dev/null and b/res/drawable-xxhdpi/btn_legenda_pressed.png differ
diff --git a/res/drawable-xxhdpi/btn_odinstaluj_normal.png b/res/drawable-xxhdpi/btn_odinstaluj_normal.png
new file mode 100644 (file)
index 0000000..9eb02ee
Binary files /dev/null and b/res/drawable-xxhdpi/btn_odinstaluj_normal.png differ
diff --git a/res/drawable-xxhdpi/btn_odinstaluj_pressed.png b/res/drawable-xxhdpi/btn_odinstaluj_pressed.png
new file mode 100644 (file)
index 0000000..50fc6a3
Binary files /dev/null and b/res/drawable-xxhdpi/btn_odinstaluj_pressed.png differ
diff --git a/res/drawable-xxhdpi/btn_ok_normal.png b/res/drawable-xxhdpi/btn_ok_normal.png
new file mode 100755 (executable)
index 0000000..b686b03
Binary files /dev/null and b/res/drawable-xxhdpi/btn_ok_normal.png differ
diff --git a/res/drawable-xxhdpi/btn_ok_pressed.png b/res/drawable-xxhdpi/btn_ok_pressed.png
new file mode 100755 (executable)
index 0000000..5a387ab
Binary files /dev/null and b/res/drawable-xxhdpi/btn_ok_pressed.png differ
diff --git a/res/drawable-xxhdpi/btn_powrot_normal.png b/res/drawable-xxhdpi/btn_powrot_normal.png
new file mode 100644 (file)
index 0000000..5f2ec68
Binary files /dev/null and b/res/drawable-xxhdpi/btn_powrot_normal.png differ
diff --git a/res/drawable-xxhdpi/btn_powrot_pressed.png b/res/drawable-xxhdpi/btn_powrot_pressed.png
new file mode 100644 (file)
index 0000000..dae6208
Binary files /dev/null and b/res/drawable-xxhdpi/btn_powrot_pressed.png differ
diff --git a/res/drawable-xxhdpi/btn_ustawienia_normal.png b/res/drawable-xxhdpi/btn_ustawienia_normal.png
new file mode 100644 (file)
index 0000000..1fac989
Binary files /dev/null and b/res/drawable-xxhdpi/btn_ustawienia_normal.png differ
diff --git a/res/drawable-xxhdpi/btn_ustawienia_pressed.png b/res/drawable-xxhdpi/btn_ustawienia_pressed.png
new file mode 100644 (file)
index 0000000..caeefec
Binary files /dev/null and b/res/drawable-xxhdpi/btn_ustawienia_pressed.png differ
diff --git a/res/drawable-xxhdpi/btn_wiecej_info_normal.png b/res/drawable-xxhdpi/btn_wiecej_info_normal.png
new file mode 100644 (file)
index 0000000..4f447ff
Binary files /dev/null and b/res/drawable-xxhdpi/btn_wiecej_info_normal.png differ
diff --git a/res/drawable-xxhdpi/btn_wiecej_info_pressed.png b/res/drawable-xxhdpi/btn_wiecej_info_pressed.png
new file mode 100644 (file)
index 0000000..fe85687
Binary files /dev/null and b/res/drawable-xxhdpi/btn_wiecej_info_pressed.png differ
diff --git a/res/drawable-xxhdpi/drawer_shadow.9.png b/res/drawable-xxhdpi/drawer_shadow.9.png
new file mode 100644 (file)
index 0000000..b91e9d7
Binary files /dev/null and b/res/drawable-xxhdpi/drawer_shadow.9.png differ
diff --git a/res/drawable-xxhdpi/ic_broke.png b/res/drawable-xxhdpi/ic_broke.png
new file mode 100755 (executable)
index 0000000..3bb09b9
Binary files /dev/null and b/res/drawable-xxhdpi/ic_broke.png differ
diff --git a/res/drawable-xxhdpi/ic_broke_dark.png b/res/drawable-xxhdpi/ic_broke_dark.png
new file mode 100755 (executable)
index 0000000..1258664
Binary files /dev/null and b/res/drawable-xxhdpi/ic_broke_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_broke_disable.png b/res/drawable-xxhdpi/ic_broke_disable.png
new file mode 100755 (executable)
index 0000000..fef0b5a
Binary files /dev/null and b/res/drawable-xxhdpi/ic_broke_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_call.png b/res/drawable-xxhdpi/ic_call.png
new file mode 100755 (executable)
index 0000000..f1f20ee
Binary files /dev/null and b/res/drawable-xxhdpi/ic_call.png differ
diff --git a/res/drawable-xxhdpi/ic_call_dark.png b/res/drawable-xxhdpi/ic_call_dark.png
new file mode 100755 (executable)
index 0000000..74697fb
Binary files /dev/null and b/res/drawable-xxhdpi/ic_call_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_call_disable.png b/res/drawable-xxhdpi/ic_call_disable.png
new file mode 100755 (executable)
index 0000000..4fd4ad2
Binary files /dev/null and b/res/drawable-xxhdpi/ic_call_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_call_history.png b/res/drawable-xxhdpi/ic_call_history.png
new file mode 100755 (executable)
index 0000000..aa3edd0
Binary files /dev/null and b/res/drawable-xxhdpi/ic_call_history.png differ
diff --git a/res/drawable-xxhdpi/ic_call_history_dark.png b/res/drawable-xxhdpi/ic_call_history_dark.png
new file mode 100755 (executable)
index 0000000..e8efd5f
Binary files /dev/null and b/res/drawable-xxhdpi/ic_call_history_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_call_history_disable.png b/res/drawable-xxhdpi/ic_call_history_disable.png
new file mode 100755 (executable)
index 0000000..571514d
Binary files /dev/null and b/res/drawable-xxhdpi/ic_call_history_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_communication.png b/res/drawable-xxhdpi/ic_communication.png
new file mode 100755 (executable)
index 0000000..0acc2a9
Binary files /dev/null and b/res/drawable-xxhdpi/ic_communication.png differ
diff --git a/res/drawable-xxhdpi/ic_communication_dark.png b/res/drawable-xxhdpi/ic_communication_dark.png
new file mode 100755 (executable)
index 0000000..55ca29d
Binary files /dev/null and b/res/drawable-xxhdpi/ic_communication_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_communication_disable.png b/res/drawable-xxhdpi/ic_communication_disable.png
new file mode 100755 (executable)
index 0000000..8c4ec39
Binary files /dev/null and b/res/drawable-xxhdpi/ic_communication_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_cyber_profile.png b/res/drawable-xxhdpi/ic_cyber_profile.png
new file mode 100755 (executable)
index 0000000..4ed83f8
Binary files /dev/null and b/res/drawable-xxhdpi/ic_cyber_profile.png differ
diff --git a/res/drawable-xxhdpi/ic_cyber_profile_dark.png b/res/drawable-xxhdpi/ic_cyber_profile_dark.png
new file mode 100755 (executable)
index 0000000..cfe69b2
Binary files /dev/null and b/res/drawable-xxhdpi/ic_cyber_profile_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_cyber_profile_disable.png b/res/drawable-xxhdpi/ic_cyber_profile_disable.png
new file mode 100755 (executable)
index 0000000..d8a579b
Binary files /dev/null and b/res/drawable-xxhdpi/ic_cyber_profile_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_data_sending.png b/res/drawable-xxhdpi/ic_data_sending.png
new file mode 100755 (executable)
index 0000000..6cda15b
Binary files /dev/null and b/res/drawable-xxhdpi/ic_data_sending.png differ
diff --git a/res/drawable-xxhdpi/ic_data_sending_dark.png b/res/drawable-xxhdpi/ic_data_sending_dark.png
new file mode 100755 (executable)
index 0000000..8fa3140
Binary files /dev/null and b/res/drawable-xxhdpi/ic_data_sending_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_data_sending_disable.png b/res/drawable-xxhdpi/ic_data_sending_disable.png
new file mode 100755 (executable)
index 0000000..117263c
Binary files /dev/null and b/res/drawable-xxhdpi/ic_data_sending_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_data_transmission.png b/res/drawable-xxhdpi/ic_data_transmission.png
new file mode 100755 (executable)
index 0000000..d8dedb9
Binary files /dev/null and b/res/drawable-xxhdpi/ic_data_transmission.png differ
diff --git a/res/drawable-xxhdpi/ic_data_transmission_dark.png b/res/drawable-xxhdpi/ic_data_transmission_dark.png
new file mode 100755 (executable)
index 0000000..854bc89
Binary files /dev/null and b/res/drawable-xxhdpi/ic_data_transmission_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_data_transmission_disable.png b/res/drawable-xxhdpi/ic_data_transmission_disable.png
new file mode 100755 (executable)
index 0000000..e3095cf
Binary files /dev/null and b/res/drawable-xxhdpi/ic_data_transmission_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_device.png b/res/drawable-xxhdpi/ic_device.png
new file mode 100755 (executable)
index 0000000..b6331e1
Binary files /dev/null and b/res/drawable-xxhdpi/ic_device.png differ
diff --git a/res/drawable-xxhdpi/ic_device_control.png b/res/drawable-xxhdpi/ic_device_control.png
new file mode 100755 (executable)
index 0000000..1915ca6
Binary files /dev/null and b/res/drawable-xxhdpi/ic_device_control.png differ
diff --git a/res/drawable-xxhdpi/ic_device_control_dark.png b/res/drawable-xxhdpi/ic_device_control_dark.png
new file mode 100755 (executable)
index 0000000..d8358a1
Binary files /dev/null and b/res/drawable-xxhdpi/ic_device_control_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_device_control_disable.png b/res/drawable-xxhdpi/ic_device_control_disable.png
new file mode 100755 (executable)
index 0000000..875e3a1
Binary files /dev/null and b/res/drawable-xxhdpi/ic_device_control_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_device_dark.png b/res/drawable-xxhdpi/ic_device_dark.png
new file mode 100755 (executable)
index 0000000..5c1423e
Binary files /dev/null and b/res/drawable-xxhdpi/ic_device_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_device_disable.png b/res/drawable-xxhdpi/ic_device_disable.png
new file mode 100755 (executable)
index 0000000..91531cb
Binary files /dev/null and b/res/drawable-xxhdpi/ic_device_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_device_drawer.png b/res/drawable-xxhdpi/ic_device_drawer.png
new file mode 100755 (executable)
index 0000000..7dc959b
Binary files /dev/null and b/res/drawable-xxhdpi/ic_device_drawer.png differ
diff --git a/res/drawable-xxhdpi/ic_disturb.png b/res/drawable-xxhdpi/ic_disturb.png
new file mode 100755 (executable)
index 0000000..8db45bd
Binary files /dev/null and b/res/drawable-xxhdpi/ic_disturb.png differ
diff --git a/res/drawable-xxhdpi/ic_disturb_dark.png b/res/drawable-xxhdpi/ic_disturb_dark.png
new file mode 100755 (executable)
index 0000000..ea0ccca
Binary files /dev/null and b/res/drawable-xxhdpi/ic_disturb_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_disturb_disable.png b/res/drawable-xxhdpi/ic_disturb_disable.png
new file mode 100755 (executable)
index 0000000..b0987c9
Binary files /dev/null and b/res/drawable-xxhdpi/ic_disturb_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_drawer.png b/res/drawable-xxhdpi/ic_drawer.png
new file mode 100644 (file)
index 0000000..0f48a35
Binary files /dev/null and b/res/drawable-xxhdpi/ic_drawer.png differ
diff --git a/res/drawable-xxhdpi/ic_files.png b/res/drawable-xxhdpi/ic_files.png
new file mode 100755 (executable)
index 0000000..a74faaf
Binary files /dev/null and b/res/drawable-xxhdpi/ic_files.png differ
diff --git a/res/drawable-xxhdpi/ic_files_dark.png b/res/drawable-xxhdpi/ic_files_dark.png
new file mode 100755 (executable)
index 0000000..bb7bcd2
Binary files /dev/null and b/res/drawable-xxhdpi/ic_files_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_files_disable.png b/res/drawable-xxhdpi/ic_files_disable.png
new file mode 100755 (executable)
index 0000000..f6abb61
Binary files /dev/null and b/res/drawable-xxhdpi/ic_files_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_files_edit.png b/res/drawable-xxhdpi/ic_files_edit.png
new file mode 100755 (executable)
index 0000000..d9f4a08
Binary files /dev/null and b/res/drawable-xxhdpi/ic_files_edit.png differ
diff --git a/res/drawable-xxhdpi/ic_files_edit_dark.png b/res/drawable-xxhdpi/ic_files_edit_dark.png
new file mode 100755 (executable)
index 0000000..477b859
Binary files /dev/null and b/res/drawable-xxhdpi/ic_files_edit_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_files_edit_disable.png b/res/drawable-xxhdpi/ic_files_edit_disable.png
new file mode 100755 (executable)
index 0000000..4319c1a
Binary files /dev/null and b/res/drawable-xxhdpi/ic_files_edit_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_launcher.png b/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644 (file)
index 0000000..7bb13f0
Binary files /dev/null and b/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/res/drawable-xxhdpi/ic_location.png b/res/drawable-xxhdpi/ic_location.png
new file mode 100755 (executable)
index 0000000..7d8bf69
Binary files /dev/null and b/res/drawable-xxhdpi/ic_location.png differ
diff --git a/res/drawable-xxhdpi/ic_location_dark.png b/res/drawable-xxhdpi/ic_location_dark.png
new file mode 100755 (executable)
index 0000000..44cfc20
Binary files /dev/null and b/res/drawable-xxhdpi/ic_location_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_location_disable.png b/res/drawable-xxhdpi/ic_location_disable.png
new file mode 100755 (executable)
index 0000000..8338d13
Binary files /dev/null and b/res/drawable-xxhdpi/ic_location_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_profile_drawer.png b/res/drawable-xxhdpi/ic_profile_drawer.png
new file mode 100755 (executable)
index 0000000..f36269e
Binary files /dev/null and b/res/drawable-xxhdpi/ic_profile_drawer.png differ
diff --git a/res/drawable-xxhdpi/ic_sms.png b/res/drawable-xxhdpi/ic_sms.png
new file mode 100755 (executable)
index 0000000..4e6ca73
Binary files /dev/null and b/res/drawable-xxhdpi/ic_sms.png differ
diff --git a/res/drawable-xxhdpi/ic_sms_dark.png b/res/drawable-xxhdpi/ic_sms_dark.png
new file mode 100755 (executable)
index 0000000..caff018
Binary files /dev/null and b/res/drawable-xxhdpi/ic_sms_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_sms_disable.png b/res/drawable-xxhdpi/ic_sms_disable.png
new file mode 100755 (executable)
index 0000000..c772d69
Binary files /dev/null and b/res/drawable-xxhdpi/ic_sms_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_system.png b/res/drawable-xxhdpi/ic_system.png
new file mode 100644 (file)
index 0000000..ca5f6ce
Binary files /dev/null and b/res/drawable-xxhdpi/ic_system.png differ
diff --git a/res/drawable-xxhdpi/ic_system_dark.png b/res/drawable-xxhdpi/ic_system_dark.png
new file mode 100644 (file)
index 0000000..9e1fdb0
Binary files /dev/null and b/res/drawable-xxhdpi/ic_system_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_system_disable.png b/res/drawable-xxhdpi/ic_system_disable.png
new file mode 100644 (file)
index 0000000..a5233bf
Binary files /dev/null and b/res/drawable-xxhdpi/ic_system_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_system_red.png b/res/drawable-xxhdpi/ic_system_red.png
new file mode 100644 (file)
index 0000000..146e79a
Binary files /dev/null and b/res/drawable-xxhdpi/ic_system_red.png differ
diff --git a/res/drawable-xxhdpi/ic_system_red_dark.png b/res/drawable-xxhdpi/ic_system_red_dark.png
new file mode 100644 (file)
index 0000000..512daa5
Binary files /dev/null and b/res/drawable-xxhdpi/ic_system_red_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_system_red_disable.png b/res/drawable-xxhdpi/ic_system_red_disable.png
new file mode 100644 (file)
index 0000000..9e5964d
Binary files /dev/null and b/res/drawable-xxhdpi/ic_system_red_disable.png differ
diff --git a/res/drawable-xxhdpi/ic_wallet_drawer.png b/res/drawable-xxhdpi/ic_wallet_drawer.png
new file mode 100755 (executable)
index 0000000..44746be
Binary files /dev/null and b/res/drawable-xxhdpi/ic_wallet_drawer.png differ
diff --git a/res/drawable-xxhdpi/ic_warning_drawer.png b/res/drawable-xxhdpi/ic_warning_drawer.png
new file mode 100755 (executable)
index 0000000..31adcc2
Binary files /dev/null and b/res/drawable-xxhdpi/ic_warning_drawer.png differ
diff --git a/res/drawable-xxhdpi/ic_wiretapping.png b/res/drawable-xxhdpi/ic_wiretapping.png
new file mode 100755 (executable)
index 0000000..1e8a520
Binary files /dev/null and b/res/drawable-xxhdpi/ic_wiretapping.png differ
diff --git a/res/drawable-xxhdpi/ic_wiretapping_dark.png b/res/drawable-xxhdpi/ic_wiretapping_dark.png
new file mode 100755 (executable)
index 0000000..c84e376
Binary files /dev/null and b/res/drawable-xxhdpi/ic_wiretapping_dark.png differ
diff --git a/res/drawable-xxhdpi/ic_wiretapping_disable.png b/res/drawable-xxhdpi/ic_wiretapping_disable.png
new file mode 100755 (executable)
index 0000000..ca0bedb
Binary files /dev/null and b/res/drawable-xxhdpi/ic_wiretapping_disable.png differ
diff --git a/res/drawable-xxhdpi/img_welcome_screen.png b/res/drawable-xxhdpi/img_welcome_screen.png
new file mode 100755 (executable)
index 0000000..ce288e2
Binary files /dev/null and b/res/drawable-xxhdpi/img_welcome_screen.png differ
diff --git a/res/drawable-xxhdpi/logo_fnp.png b/res/drawable-xxhdpi/logo_fnp.png
new file mode 100755 (executable)
index 0000000..f245255
Binary files /dev/null and b/res/drawable-xxhdpi/logo_fnp.png differ
diff --git a/res/drawable-xxhdpi/logo_maic.png b/res/drawable-xxhdpi/logo_maic.png
new file mode 100755 (executable)
index 0000000..3dd9ab6
Binary files /dev/null and b/res/drawable-xxhdpi/logo_maic.png differ
diff --git a/res/drawable-xxhdpi/logo_samsung.png b/res/drawable-xxhdpi/logo_samsung.png
new file mode 100755 (executable)
index 0000000..da4bf95
Binary files /dev/null and b/res/drawable-xxhdpi/logo_samsung.png differ
diff --git a/res/drawable-xxhdpi/title_welcome_screen.png b/res/drawable-xxhdpi/title_welcome_screen.png
new file mode 100755 (executable)
index 0000000..1457102
Binary files /dev/null and b/res/drawable-xxhdpi/title_welcome_screen.png differ
diff --git a/res/drawable/actionbar_background.xml b/res/drawable/actionbar_background.xml
new file mode 100644 (file)
index 0000000..f02d7f9
--- /dev/null
@@ -0,0 +1,3 @@
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+      <solid android:color="@color/action_bar_bg"/>  
+ </shape>
diff --git a/res/drawable/app_info_settings_button.xml b/res/drawable/app_info_settings_button.xml
new file mode 100644 (file)
index 0000000..586d1fb
--- /dev/null
@@ -0,0 +1,5 @@
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+     <item android:state_pressed="true"
+           android:drawable="@drawable/btn_ustawienia_pressed" /> 
+     <item android:drawable="@drawable/btn_ustawienia_normal" /> 
+ </selector>
\ No newline at end of file
diff --git a/res/drawable/app_info_uninstall_button.xml b/res/drawable/app_info_uninstall_button.xml
new file mode 100644 (file)
index 0000000..4eefcf3
--- /dev/null
@@ -0,0 +1,5 @@
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+     <item android:state_pressed="true"
+           android:drawable="@drawable/btn_odinstaluj_pressed" /> 
+     <item android:drawable="@drawable/btn_odinstaluj_normal" /> 
+ </selector>
\ No newline at end of file
diff --git a/res/drawable/app_info_what_can_button.xml b/res/drawable/app_info_what_can_button.xml
new file mode 100644 (file)
index 0000000..dba9a4c
--- /dev/null
@@ -0,0 +1,5 @@
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+     <item android:state_pressed="true"
+           android:drawable="@drawable/btn_co_moge_pressed" /> 
+     <item android:drawable="@drawable/btn_co_moge_normal" /> 
+ </selector>
\ No newline at end of file
diff --git a/res/drawable/back_button.xml b/res/drawable/back_button.xml
new file mode 100644 (file)
index 0000000..8dd4920
--- /dev/null
@@ -0,0 +1,5 @@
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+     <item android:state_pressed="true"
+           android:drawable="@drawable/btn_powrot_pressed" /> 
+     <item android:drawable="@drawable/btn_powrot_normal" /> 
+ </selector>
\ No newline at end of file
diff --git a/res/drawable/custom_border.xml b/res/drawable/custom_border.xml
new file mode 100644 (file)
index 0000000..ca4a13a
--- /dev/null
@@ -0,0 +1,11 @@
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+  <corners
+      android:radius="2dp"
+      android:topRightRadius="0dp"
+      android:bottomRightRadius="0dp"
+      android:bottomLeftRadius="0dp" />
+  <stroke
+      android:width="1dp"
+      android:color="@android:color/white" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/drawer_background_selector.xml b/res/drawable/drawer_background_selector.xml
new file mode 100644 (file)
index 0000000..7be5d27
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item 
+        android:state_pressed="true" 
+        android:drawable="@color/drawer_hover"/>
+
+</selector>
diff --git a/res/drawable/legend_btn_selector.xml b/res/drawable/legend_btn_selector.xml
new file mode 100644 (file)
index 0000000..c166e6a
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    <item android:state_pressed="true"
+        android:drawable="@drawable/btn_legenda_pressed" />
+    <item 
+        android:drawable="@drawable/btn_legenda_normal" />
+
+</selector>
diff --git a/res/drawable/more_info_button.xml b/res/drawable/more_info_button.xml
new file mode 100644 (file)
index 0000000..d4770f0
--- /dev/null
@@ -0,0 +1,5 @@
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+     <item android:state_pressed="true"
+           android:drawable="@drawable/btn_wiecej_info_pressed" /> 
+     <item android:drawable="@drawable/btn_wiecej_info_normal" /> 
+ </selector>
\ No newline at end of file
diff --git a/res/drawable/nav_drawer_separator.9.png b/res/drawable/nav_drawer_separator.9.png
new file mode 100755 (executable)
index 0000000..f1466ba
Binary files /dev/null and b/res/drawable/nav_drawer_separator.9.png differ
diff --git a/res/drawable/ok_button.xml b/res/drawable/ok_button.xml
new file mode 100644 (file)
index 0000000..6151480
--- /dev/null
@@ -0,0 +1,5 @@
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+     <item android:state_pressed="true"
+           android:drawable="@drawable/btn_ok_pressed" /> 
+     <item android:drawable="@drawable/btn_ok_normal" /> 
+ </selector>
\ No newline at end of file
diff --git a/res/layout-land/activity_app_info.xml b/res/layout-land/activity_app_info.xml
new file mode 100644 (file)
index 0000000..c55bd26
--- /dev/null
@@ -0,0 +1,126 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/app_detail_bg"
+    android:baselineAligned="false"
+    android:orientation="horizontal"
+    android:padding="20dp" >
+
+    <RelativeLayout
+        android:id="@+id/app_layout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="20dp"
+        android:layout_weight="1"
+        android:gravity="center" >
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
+            android:gravity="center_vertical"
+            android:orientation="horizontal" >
+
+            <RelativeLayout
+                android:layout_width="50dp"
+                android:layout_height="50dp" >
+
+                <ImageView
+                    android:id="@+id/app_icon"
+                    android:layout_width="50dp"
+                    android:layout_height="50dp"
+                    android:scaleType="centerInside"
+                    android:src="@drawable/ic_launcher" />
+
+                <ImageView
+                    android:id="@+id/list_system_app_icon"
+                    android:layout_width="25dp"
+                    android:layout_height="25dp"
+                    android:layout_alignParentBottom="true"
+                    android:layout_alignParentRight="true"
+                    android:scaleType="centerInside"
+                    android:src="@drawable/ic_system_dark"
+                    android:visibility="invisible" />
+            </RelativeLayout>
+
+            <TextView
+                android:id="@+id/app_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:textSize="14sp" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/button_layout"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:orientation="vertical"
+            android:paddingRight="10dp" >
+
+            <ImageButton
+                android:id="@+id/more_info_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="10dp"
+                android:background="#00000000"
+                android:contentDescription="@string/app_detail_more_info_button"
+                android:scaleType="fitCenter"
+                android:src="@drawable/app_info_what_can_button"
+                android:visibility="gone" />
+
+            <ImageButton
+                android:id="@+id/uninstall_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="#00000000"
+                android:contentDescription="@string/app_detail_uninstall_button"
+                android:scaleType="fitCenter"
+                android:src="@drawable/app_info_uninstall_button" />
+        </LinearLayout>
+
+    </RelativeLayout>
+
+    <LinearLayout
+        android:id="@+id/list_layout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:gravity="center"
+        android:orientation="vertical" >
+
+        <TextView
+            android:id="@+id/system_app_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dp"
+            android:layout_marginBottom="10dp"
+            android:text="@string/app_detail_settings_app_text"
+            android:textSize="16sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/header_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dp"
+            android:text="@string/app_detail_header"
+            android:textSize="14sp"
+            android:textStyle="bold" />
+
+        <ListView
+            android:id="@+id/threats_list"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginTop="10dp"
+            android:divider="@color/app_detail_list_divider"
+            android:cacheColorHint="@android:color/transparent"
+            android:scrollbarDefaultDelayBeforeFade="2000"
+            android:scrollbarFadeDuration="2000" />
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/activity_popup.xml b/res/layout-land/activity_popup.xml
new file mode 100644 (file)
index 0000000..06c4432
--- /dev/null
@@ -0,0 +1,69 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/popup_bg"
+    android:baselineAligned="false"
+    android:padding="20dp" >
+
+    <RelativeLayout
+        android:id="@+id/button_layout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="20dp"
+        android:layout_weight="1" >
+
+        <ImageButton
+            android:id="@+id/moreinfo_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_above="@id/back_button"
+            android:layout_centerHorizontal="true"
+            android:layout_marginRight="10dp"
+            android:layout_marginBottom="10dp"
+            android:background="#00000000"
+            android:contentDescription="@string/popup_moreinfo_button"
+            android:scaleType="fitCenter"
+            android:src="@drawable/more_info_button" />
+
+        <ImageButton
+            android:id="@+id/back_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginRight="10dp"
+            android:background="#00000000"
+            android:contentDescription="@string/popup_back_button"
+            android:scaleType="fitCenter"
+            android:src="@drawable/back_button" />
+    </RelativeLayout>
+
+    <LinearLayout
+        android:id="@+id/list_layout"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_weight="2"
+        android:orientation="vertical" >
+
+        <TextView
+            android:id="@+id/header_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:textColor="@color/text_bg"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <ListView
+            android:id="@+id/threats_list"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginBottom="10dp"
+            android:layout_marginTop="5dp"
+            android:cacheColorHint="@android:color/transparent"
+            android:divider="@null" />
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/welcome_dialog.xml b/res/layout-land/welcome_dialog.xml
new file mode 100644 (file)
index 0000000..c964754
--- /dev/null
@@ -0,0 +1,180 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:baselineAligned="true"
+    android:orientation="horizontal"
+    tools:ignore="MergeRootFrame" >
+
+    <RelativeLayout
+        android:id="@+id/footer_bg"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:background="@color/welcome_footer_bg"
+        android:padding="5pt" >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_above="@id/footer_text"
+            android:layout_alignParentTop="true"
+            android:gravity="center"
+            android:orientation="vertical" >
+
+            <ImageView
+                android:id="@+id/fondation_logo"
+                android:layout_width="wrap_content"
+                android:layout_height="0dip"
+                android:layout_weight="1"
+                android:layout_marginBottom="10pt"
+                android:contentDescription="@string/fond"
+                android:scaleType="centerInside"
+                android:src="@drawable/logo_fnp" />
+
+            <ImageView
+                android:id="@+id/samsung_logo"
+                android:layout_width="wrap_content"
+                android:layout_height="0dip"
+                android:layout_weight="1"
+                android:layout_marginBottom="10pt"
+                android:contentDescription="@string/samsung"
+                android:scaleType="centerInside"
+                android:src="@drawable/logo_samsung" />
+
+            <ImageView
+                android:id="@+id/gov_logo"
+                android:layout_width="wrap_content"
+                android:layout_height="0dip"
+                android:layout_weight="1"
+                android:layout_marginBottom="10pt"
+                android:contentDescription="@string/gov"
+                android:scaleType="centerInside"
+                android:src="@drawable/logo_maic" />
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/footer_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:gravity="center"
+            android:text="@string/financing_info"
+            android:textColor="@android:color/black"
+            android:textSize="15sp" />
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/header"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="3"
+        android:background="@color/welcome_header_bg"
+        android:paddingBottom="5pt"
+        android:paddingLeft="5pt"
+        android:paddingRight="5pt" >
+
+        <ImageView
+            android:id="@+id/tick_bg"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:layout_alignParentTop="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginLeft="35dp"
+            android:layout_marginRight="35dp"
+            android:src="@drawable/img_welcome_screen"
+            android:contentDescription="@null"
+            android:scaleType="fitStart" />
+
+        <TextView
+            android:id="@+id/app_version"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_alignParentTop="true"
+            android:text="numer wersji"
+            android:textColor="@color/text_main"
+            android:textSize="14sp" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_alignParentTop="true"
+            android:gravity="center"
+            android:orientation="vertical" >
+
+            <TextView
+                android:id="@+id/app_name"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="2"
+                android:gravity="center"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp"
+                android:text="@string/app_name_two_line"
+                android:textColor="@color/text_main"
+                android:textSize="30sp"
+                android:textStyle="bold" />
+
+            <ScrollView
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="2"
+                android:scrollbarDefaultDelayBeforeFade="1000"
+                android:scrollbarFadeDuration="1000"
+                android:fillViewport="true"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp"
+                android:scrollbars="vertical" >
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:orientation="vertical" >
+
+                    <TextView
+                        android:id="@+id/welcome_description"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:text="@string/action_description"
+                        android:textColor="@color/text_main"
+                        android:textSize="15sp" />
+                    <TextView
+                        android:id="@+id/welcome_description_link"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:text="@string/action_description_link_text"
+                        android:textColor="@color/welcome_link_color"
+                        android:textSize="15sp" />
+                </LinearLayout>
+            </ScrollView>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:orientation="vertical" >
+
+                <ImageButton
+                    android:id="@+id/button"
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:background="#00000000"
+                    android:contentDescription="@android:string/ok"
+                    android:scaleType="centerInside"
+                    android:src="@drawable/ok_button" />
+
+                <ProgressBar
+                    android:id="@+id/progressBar"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:visibility="gone" >
+                </ProgressBar>
+            </LinearLayout>
+        </LinearLayout>
+    </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-large-land/activity_main.xml b/res/layout-large-land/activity_main.xml
new file mode 100644 (file)
index 0000000..f8aced4
--- /dev/null
@@ -0,0 +1,40 @@
+<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/tablet_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.samsung.srpol.MainActivity" >
+
+    <android.support.v4.view.ViewPager
+        android:id="@+id/myviewpager"
+        android:layout_toRightOf="@+id/drawer_separator"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" >
+
+        <android.support.v4.view.PagerTabStrip
+            android:id="@+id/titlestrip"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@color/header_bg"
+            android:textColor="@color/text_main" />
+    </android.support.v4.view.ViewPager>
+
+    <fragment
+        android:id="@+id/menu_container"
+        android:name="com.samsung.srpol.ui.drawer.MenuFragment"
+        android:layout_alignParentLeft="true"
+        android:layout_width="@dimen/menu_container_width"
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        tools:layout="@layout/fragment_navigation_drawer" />
+
+    <ImageView 
+        android:id="@+id/drawer_separator"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_toRightOf="@+id/menu_container"
+        android:src="@drawable/nav_drawer_separator"
+        android:scaleType="fitXY"/>
+
+</RelativeLayout>
diff --git a/res/layout/activity_app_info.xml b/res/layout/activity_app_info.xml
new file mode 100644 (file)
index 0000000..46becbe
--- /dev/null
@@ -0,0 +1,114 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/app_detail_bg"
+    android:padding="20dp" >
+
+    <LinearLayout
+        android:id="@+id/app_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:gravity="center" >
+
+        <RelativeLayout
+            android:layout_width="50dp"
+            android:layout_height="50dp" >
+
+            <ImageView
+                android:id="@+id/app_icon"
+                android:layout_width="50dp"
+                android:layout_height="50dp"
+                android:scaleType="centerInside"
+                android:src="@drawable/ic_launcher" />
+
+            <ImageView
+                android:id="@+id/list_system_app_icon"
+                android:layout_width="25dp"
+                android:layout_height="25dp"
+                android:layout_alignParentBottom="true"
+                android:layout_alignParentRight="true"
+                android:scaleType="centerInside"
+                android:src="@drawable/ic_system_dark"
+                android:visibility="invisible" />
+        </RelativeLayout>
+
+        <TextView
+            android:id="@+id/app_name"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:textSize="14sp" />
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/system_app_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/app_layout"
+        android:layout_marginTop="20dp"
+        android:layout_marginBottom="-10dp"
+        android:text="@string/app_detail_settings_app_text"
+        android:textSize="16sp"
+        android:textStyle="bold" />
+
+    <TextView
+        android:id="@+id/header_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/system_app_text"
+        android:layout_marginTop="20dp"
+        android:text="@string/app_detail_header"
+        android:textSize="14sp"
+        android:textStyle="bold" />
+
+    <ListView
+        android:id="@+id/threats_list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_above="@+id/button_layout"
+        android:layout_below="@+id/header_text"
+        android:layout_marginBottom="10dp"
+        android:layout_marginTop="10dp"
+        android:divider="@color/app_detail_list_divider"
+        android:cacheColorHint="@android:color/transparent"
+        android:scrollbarDefaultDelayBeforeFade="2000"
+        android:scrollbarFadeDuration="2000" />
+
+    <LinearLayout
+        android:id="@+id/button_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="20dp"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp" >
+
+        <ImageButton
+            android:id="@+id/more_info_button"
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_marginRight="10dp"
+            android:background="#00000000"
+            android:contentDescription="@string/app_detail_more_info_button"
+            android:scaleType="fitCenter"
+            android:src="@drawable/app_info_what_can_button"
+            android:visibility="gone" />
+
+        <ImageButton
+            android:id="@+id/uninstall_button"
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:background="#00000000"
+            android:contentDescription="@string/app_detail_uninstall_button"
+            android:scaleType="fitCenter"
+            android:src="@drawable/app_info_uninstall_button" />
+
+    </LinearLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/activity_license.xml b/res/layout/activity_license.xml
new file mode 100644 (file)
index 0000000..478f9aa
--- /dev/null
@@ -0,0 +1,61 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/popup_bg"
+    android:padding="20dp">
+
+    <ImageButton
+        android:id="@+id/back_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:background="#00000000"
+        android:contentDescription="@string/popup_back_button"
+        android:paddingBottom="20dp"
+        android:paddingTop="20dp"
+        android:scaleType="fitCenter"
+        android:src="@drawable/back_button" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_above="@+id/back_button"
+        android:fillViewport="true"
+        android:scrollbarDefaultDelayBeforeFade="1000"
+        android:scrollbarFadeDuration="1000"
+        android:scrollbars="vertical" >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical" >
+
+            <TextView
+                android:id="@+id/main_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/license_text"
+                android:textColor="@color/text_main"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/license_link"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/license_link"
+                android:textColor="@color/text_main"
+                android:textSize="14sp" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="20dp"
+                android:text="@string/license_companies"
+                android:textColor="@color/text_main"
+                android:textSize="14sp" />
+        </LinearLayout>
+    </ScrollView>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml
new file mode 100644 (file)
index 0000000..5cee2f0
--- /dev/null
@@ -0,0 +1,30 @@
+<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
+<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/drawer_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.samsung.srpol.MainActivity" >
+
+    <android.support.v4.view.ViewPager
+        android:id="@+id/myviewpager"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" >
+
+        <android.support.v4.view.PagerTabStrip
+            android:id="@+id/titlestrip"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@color/header_bg"
+            android:textColor="@color/text_main" />
+    </android.support.v4.view.ViewPager>
+
+    <fragment
+        android:id="@+id/menu_container"
+        android:name="com.samsung.srpol.ui.drawer.MenuFragment"
+        android:layout_width="@dimen/menu_container_width"
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        tools:layout="@layout/fragment_navigation_drawer" />
+
+</android.support.v4.widget.DrawerLayout>
diff --git a/res/layout/activity_popup.xml b/res/layout/activity_popup.xml
new file mode 100644 (file)
index 0000000..3a8edae
--- /dev/null
@@ -0,0 +1,63 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/popup_bg"
+    android:paddingLeft="20dp"
+    android:paddingRight="20dp"
+    android:paddingTop="20dp" >
+
+    <TextView
+        android:id="@+id/header_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginTop="20dp"
+        android:textColor="@color/text_bg"
+        android:textSize="18sp"
+        android:textStyle="bold" />
+
+    <ListView
+        android:id="@+id/threats_list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_above="@+id/button_layout"
+        android:layout_below="@+id/header_text"
+        android:layout_marginBottom="10dp"
+        android:layout_marginTop="5dp"
+        android:cacheColorHint="@android:color/transparent"
+        android:divider="@null" />
+
+    <LinearLayout
+        android:id="@+id/button_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="20dp" >
+
+        <ImageButton
+            android:id="@+id/back_button"
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_marginRight="10dp"
+            android:background="#00000000"
+            android:contentDescription="@string/popup_back_button"
+            android:scaleType="fitCenter"
+            android:src="@drawable/back_button" />
+
+        <ImageButton
+            android:id="@+id/moreinfo_button"
+            android:layout_width="0dip"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:background="#00000000"
+            android:contentDescription="@string/popup_moreinfo_button"
+            android:scaleType="fitCenter"
+            android:src="@drawable/more_info_button" />
+    </LinearLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/app_list_item_view.xml b/res/layout/app_list_item_view.xml
new file mode 100644 (file)
index 0000000..0cafe97
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="?android:attr/listPreferredItemHeight"
+    android:background="@android:color/white"
+    android:padding="6dip" >
+
+    <ImageView
+        android:id="@+id/list_app_icon"
+        android:layout_width="50dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginRight="6dip"
+        android:contentDescription="TODO"
+        android:scaleType="centerInside"
+        android:src="@drawable/ic_launcher" />
+
+    <ImageView
+        android:id="@+id/list_system_app_icon"
+        android:layout_width="25dp"
+        android:layout_height="25dp"
+        android:layout_alignParentBottom="true"
+        android:layout_alignRight="@id/list_app_icon"
+        android:contentDescription="TODO"
+        android:scaleType="centerInside"
+        android:src="@drawable/ic_system_dark"
+        android:visibility="invisible" />
+
+    <TextView
+        android:id="@+id/list_app_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentTop="true"
+        android:layout_alignWithParentIfMissing="true"
+        android:layout_toRightOf="@id/list_app_icon"
+        android:gravity="center_vertical"
+        android:singleLine="true"
+        android:textSize="16sp" />
+
+    <TextView
+        android:id="@+id/list_app_package"
+        android:layout_width="wrap_content"
+        android:layout_height="26dip"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:layout_below="@id/list_app_name"
+        android:layout_toRightOf="@id/list_app_icon"
+        android:ellipsize="marquee"
+        android:singleLine="true"
+        android:textSize="12sp"
+        android:visibility="invisible" />
+
+<!--     <ImageView
+        android:id="@+id/list_system_app_icon"
+        android:layout_width="25dp"
+        android:layout_height="25dp"
+        android:layout_alignParentBottom="true"
+        android:layout_below="@id/list_app_name"
+        android:layout_toRightOf="@id/list_app_icon"
+        android:contentDescription="TODO"
+        android:scaleType="centerInside"
+        android:src="@drawable/ic_system_dark"
+        android:visibility="invisible" />
+    
+ -->
+    <LinearLayout
+        android:id="@+id/app_list_group_icons"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:orientation="horizontal" >
+    </LinearLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/drawer_list_item.xml b/res/layout/drawer_list_item.xml
new file mode 100644 (file)
index 0000000..bcfc813
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:background="@drawable/drawer_background_selector" >
+
+    <TextView
+        android:id="@+id/text1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:padding="10dp"
+        android:textColor="@color/text_menu"
+        android:textSize="15sp" />
+
+    <ImageView
+        android:id="@+id/icon"
+        android:layout_below="@+id/text1"
+        android:layout_alignParentLeft="true"
+        android:layout_width="100dp"
+        android:layout_height="100dp" 
+        android:scaleType="fitStart"/>
+
+    <TextView
+        android:id="@+id/text2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_toRightOf="@+id/icon"
+        android:layout_below="@+id/text1"
+        android:padding="10dp"
+        android:textColor="@color/navigation_drawer_text"
+        android:textSize="12sp" />
+
+    <TextView 
+        android:id="@+id/text3"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_toRightOf="@+id/icon"
+        android:layout_below="@+id/text2"
+        android:paddingLeft="10dp"
+        android:paddingBottom="10dp"
+        android:textColor="@color/navigation_drawer_text"
+        android:textSize="12sp"
+        android:text="@string/items_string_quantity"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/fragment_main.xml b/res/layout/fragment_main.xml
new file mode 100644 (file)
index 0000000..0706944
--- /dev/null
@@ -0,0 +1,33 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+            android:id="@+id/header_label"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="@color/text_main"
+            android:textSize="18sp"
+            android:gravity = "center"
+            android:textStyle="bold"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
+            android:paddingBottom="10dp"
+            android:background="@color/text_bg"
+            android:layout_alignParentTop="true"
+            android:layout_alignParentLeft="true"
+            android:layout_alignParentRight="true" />
+    
+    <com.samsung.srpol.parallax.ParallaxListView
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:id="@+id/listview"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_below="@id/header_label"
+        android:fadingEdge="none"
+        app:parallax_factor="2.9"
+        tools:context=".MainActivity" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/fragment_navigation_drawer.xml b/res/layout/fragment_navigation_drawer.xml
new file mode 100644 (file)
index 0000000..1b9c99f
--- /dev/null
@@ -0,0 +1,29 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"\r
+    xmlns:tools="http://schemas.android.com/tools"\r
+    android:layout_width="match_parent"\r
+    android:layout_height="match_parent"\r
+    android:background="@color/navigation_drawet_bg"\r
+    android:orientation="vertical" >\r
+\r
+    <TextView\r
+        android:layout_width="match_parent"\r
+        android:layout_height="wrap_content"\r
+        android:paddingTop="15dp"\r
+        android:paddingBottom="15dp"\r
+        android:paddingLeft="5dp"\r
+        android:paddingRight="5dp"\r
+        android:textStyle="bold"\r
+        android:text="@string/drawer_header"\r
+        android:textColor="#000000" />\r
+\r
+    <ListView\r
+        android:id="@+id/fragment_listView"\r
+        android:layout_width="match_parent"\r
+        android:layout_height="fill_parent"\r
+        android:cacheColorHint="@null"\r
+        android:choiceMode="singleChoice"\r
+        android:divider="@android:color/transparent"\r
+        android:dividerHeight="0dp"\r
+        tools:context="com.samsung.srpol.ui.drawer.MenuFragment" />\r
+\r
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/header_layout.xml b/res/layout/header_layout.xml
new file mode 100644 (file)
index 0000000..d418210
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/text_bg"
+    android:orientation="vertical"
+    android:paddingBottom="10dp"
+    android:paddingLeft="20dp"
+    android:paddingRight="20dp" >
+
+    <TextView
+        android:id="@+id/section_label"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textColor="@color/text_main"
+        android:textSize="15sp" />
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingTop="5dp" >
+
+        <LinearLayout
+            android:id="@+id/group_icons"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentLeft="true"
+            android:orientation="horizontal" >
+        </LinearLayout>
+
+        <ImageButton
+            android:id="@+id/legend_btn"
+            android:layout_width="85dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:background="#00000000"
+            android:scaleType="fitXY"
+            android:src="@drawable/legend_btn_selector" />
+    </RelativeLayout>
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingTop="5dp"
+        android:text="@string/do_you_trust"
+        android:textColor="@color/text_main"
+        android:textSize="18sp"
+        android:textStyle="bold" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/threats_list_item.xml b/res/layout/threats_list_item.xml
new file mode 100644 (file)
index 0000000..f88ae5d
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:padding="16dp"
+    android:orientation="horizontal" >
+
+    <ImageView
+        android:id="@+id/threat_icon"
+        android:layout_width="30dp"
+        android:layout_height="30dp"
+        android:scaleType="centerInside"
+        android:src="@drawable/ic_launcher" />
+
+    <TextView
+        android:id="@+id/threat_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:textSize="14sp" />
+
+</LinearLayout> 
\ No newline at end of file
diff --git a/res/layout/welcome_dialog.xml b/res/layout/welcome_dialog.xml
new file mode 100644 (file)
index 0000000..f37e5a2
--- /dev/null
@@ -0,0 +1,182 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:ignore="MergeRootFrame" >
+
+    <RelativeLayout
+        android:id="@+id/header"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="3"
+        android:background="@color/welcome_header_bg"
+        android:paddingLeft="5pt"
+        android:paddingRight="5pt"
+        android:paddingBottom="5pt"  >
+
+        <ImageView
+            android:id="@+id/tick_bg"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:layout_alignParentTop="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginLeft="35dp"
+            android:layout_marginRight="35dp"
+            android:src="@drawable/img_welcome_screen"
+            android:contentDescription="@null"
+            android:scaleType="fitStart" />
+        <TextView
+                android:id="@+id/app_version"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:text="numer wersji"
+                android:textColor="@color/text_main"
+                android:textSize="14sp" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_alignParentTop="true"
+            android:gravity="center"
+            android:orientation="vertical" >
+
+            <TextView
+                android:id="@+id/app_name"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="2"
+                android:gravity="center"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp"
+                android:text="@string/app_name_two_line"
+                android:textColor="@color/text_main"
+                android:textSize="30sp"
+                android:textStyle="bold" />
+
+            <ScrollView
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="2"
+                android:scrollbarDefaultDelayBeforeFade="1000"
+                android:scrollbarFadeDuration="1000"
+                android:fillViewport="true"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp"
+                android:scrollbars="vertical" >
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:orientation="vertical" >
+
+                    <TextView
+                        android:id="@+id/welcome_description"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:text="@string/action_description"
+                        android:textColor="@color/text_main"
+                        android:textSize="15sp" />
+                    <TextView
+                        android:id="@+id/welcome_description_link"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:text="@string/action_description_link_text"
+                        android:textColor="@color/welcome_link_color"
+                        android:textSize="15sp" />
+                </LinearLayout>
+            </ScrollView>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:orientation="vertical" >
+
+                <ImageButton
+                    android:id="@+id/button"
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:background="#00000000"
+                    android:contentDescription="@android:string/ok"
+                    android:scaleType="centerInside"
+                    android:src="@drawable/ok_button" />
+
+                <ProgressBar
+                    android:id="@+id/progressBar"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:visibility="gone" >
+                </ProgressBar>
+            </LinearLayout>
+        </LinearLayout>
+    </RelativeLayout>
+
+    <LinearLayout
+        android:id="@+id/footer_bg"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="2"
+        android:background="@color/welcome_footer_bg"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:padding="5pt" >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:orientation="horizontal" >
+
+            <ImageView
+                android:id="@+id/fondation_logo"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:contentDescription="@string/fond"
+                android:src="@drawable/logo_fnp" />
+
+            <ImageView
+                android:id="@+id/samsung_logo"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:contentDescription="@string/samsung"
+                android:src="@drawable/logo_samsung" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:orientation="vertical" >
+
+            <ImageView
+                android:id="@+id/gov_logo"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:contentDescription="@string/gov"
+                android:src="@drawable/logo_maic" />
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/footer_text"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:paddingBottom="5dp"
+            android:text="@string/financing_info"
+            android:textColor="@android:color/black"
+            android:textSize="15sp" />
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/menu/main.xml b/res/menu/main.xml
new file mode 100644 (file)
index 0000000..c5c081d
--- /dev/null
@@ -0,0 +1,21 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android"\r
+    xmlns:app="http://schemas.android.com/apk/res-auto"\r
+    xmlns:tools="http://schemas.android.com/tools"\r
+    tools:context="com.example.androidmenupanel.MainActivity" >\r
+\r
+    <item\r
+        android:id="@+id/action_toggle_system_visibility"\r
+        android:title="@string/show_system_visibility"\r
+        app:showAsAction="withText|never"/>\r
+    <item\r
+        android:id="@+id/action_about"\r
+        android:orderInCategory="1"\r
+        android:title="@string/action_about"\r
+        app:showAsAction="never"/>\r
+    <item\r
+        android:id="@+id/action_licence"\r
+        android:orderInCategory="2"\r
+        android:title="@string/action_licence"\r
+        app:showAsAction="never"/>\r
+\r
+</menu>\r
diff --git a/res/values-v11/styles.xml b/res/values-v11/styles.xml
new file mode 100644 (file)
index 0000000..0c0f30d
--- /dev/null
@@ -0,0 +1,22 @@
+<resources>\r
+\r
+    <!--\r
+        Base application theme for API 11+. This theme completely replaces
+        AppBaseTheme from res/values/styles.xml on API 11+ devices.\r
+    -->\r
+    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">\r
+        <!-- API 11 theme customizations can go here. -->\r
+        <item name="android:actionBarStyle">@style/MyActionBar</item>\r
+\r
+        <!-- Support library compatibility -->\r
+        <item name="actionBarStyle">@style/MyActionBar</item>\r
+    </style>\r
+    <!-- ActionBar styles -->\r
+    <style name="MyActionBar"\r
+           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">\r
+        <item name="android:background">@drawable/actionbar_background</item>\r
+\r
+        <!-- Support library compatibility -->\r
+        <item name="background">@drawable/actionbar_background</item>\r
+    </style>\r
+</resources>\r
diff --git a/res/values-v14/styles.xml b/res/values-v14/styles.xml
new file mode 100644 (file)
index 0000000..5aef34b
--- /dev/null
@@ -0,0 +1,23 @@
+<resources>\r
+\r
+    <!--\r
+        Base application theme for API 14+. This theme completely replaces
+        AppBaseTheme from BOTH res/values/styles.xml and
+        res/values-v11/styles.xml on API 14+ devices.\r
+    -->\r
+    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">\r
+        <!-- API 14 theme customizations can go here. -->\r
+        <item name="android:actionBarStyle">@style/MyActionBar</item>\r
+\r
+        <!-- Support library compatibility -->\r
+        <item name="actionBarStyle">@style/MyActionBar</item>\r
+    </style>\r
+    <!-- ActionBar styles -->\r
+    <style name="MyActionBar"\r
+           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">\r
+        <item name="android:background">@drawable/actionbar_background</item>\r
+\r
+        <!-- Support library compatibility -->\r
+        <item name="background">@drawable/actionbar_background</item>\r
+    </style>\r
+</resources>\r
diff --git a/res/values-w820dp/dimens.xml b/res/values-w820dp/dimens.xml
new file mode 100644 (file)
index 0000000..f9f069f
--- /dev/null
@@ -0,0 +1,10 @@
+<resources>\r
+\r
+    <!--\r
+         Example customization of dimensions originally defined in res/values/dimens.xml
+         (such as screen margins) for screens with more than 820dp of available width. This
+         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively).\r
+    -->\r
+    <dimen name="activity_horizontal_margin">64dp</dimen>\r
+\r
+</resources>\r
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
new file mode 100644 (file)
index 0000000..cf987fe
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <declare-styleable name="ParallaxScroll">
+        <attr name="parallax_factor" format="float" />
+        <attr name="alpha_factor" format="float" />
+        <attr name="inner_parallax_factor" format="float" />
+        <attr name="parallax_views_num" format="integer" />
+        <attr name="circular_parallax" format="boolean" />
+    </declare-styleable>
+
+</resources>
\ No newline at end of file
diff --git a/res/values/color.xml b/res/values/color.xml
new file mode 100644 (file)
index 0000000..d7bee2a
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <color name="action_bar_bg">#f18324</color> <!--  jasniejszy pomarancz -->
+    <color name="tab_underline_color">#fe983e</color>
+    <color name="text_bg">#e87817</color> <!--  ciemniejszy pomarancz -->
+    <color name="header_bg">#e16810</color> <!--  ciemniejszy pomarancz -->
+    <color name="text_bg2">#ee4b35</color> <!-- jasniejszy czerwony -->
+    <color name="text_menu">#e23f29</color> <!-- cimniejszy czerwony -->
+    <color name="drawer_hover">#efa962</color>
+    <color name="navigation_drawer_text">#3a3430</color> <!-- ciemne (szaro/brÄ…zowe) teksty na navigation drawerze -->
+    <color name="navigation_drawet_bg">#eeeeee</color>
+    <color name="list_item_bg">#ffffff</color>
+    <color name="text_main">#ffffff</color>
+    <color name="list_item_text">#1f1a17</color> <!-- teksty na list itemach -->
+    <color name="item_separator">#c7bfba</color> <!--  linie separujÄ…ce list itemy -->
+    <color name="grayout_list_item_bg">#EDEDED</color> <!-- TÅ‚o wyszarzonego elementu listy aplikacji -->
+    <color name="disabled_app_name">#c3c3c3</color>
+
+    <color name="app_detail_bg">#ffffff</color>
+    <color name="app_detail_list_divider">#ffffff</color>
+    <color name="app_detail_button_text">#ffffff</color>
+    <color name="app_detail_list_text">#000000</color>
+
+    <color name="popup_bg">#1f1a17</color>
+
+    <color name="welcome_header_bg">@color/text_bg</color>
+    <color name="welcome_footer_bg">#ffffff</color>
+    <color name="welcome_link_color">#feca9c</color>
+    
+</resources>
\ No newline at end of file
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
new file mode 100644 (file)
index 0000000..a10764d
--- /dev/null
@@ -0,0 +1,13 @@
+<resources>\r
+\r
+    <!-- Default screen margins, per the Android Design guidelines. -->\r
+    <dimen name="activity_horizontal_margin">16dp</dimen>\r
+    <dimen name="activity_vertical_margin">16dp</dimen>\r
+\r
+    <!--\r
+         Per the design guidelines, navigation drawers should be between 240dp and 320dp:
+         https://developer.android.com/design/patterns/navigation-drawer.html\r
+    -->\r
+    <dimen name="menu_container_width">280dp</dimen>\r
+\r
+</resources>\r
diff --git a/res/values/strings.xml b/res/values/strings.xml
new file mode 100644 (file)
index 0000000..b590b6e
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">Mobilne BezpieczeÅ„stwo</string>
+    <string name="app_name_two_line">Mobilne\nBezpieczeÅ„stwo</string>
+    <string name="navigation_drawer_title">Kategorie dostÄ™pu</string>
+    <string name="navigation_drawer_open">Open navigation drawer</string>
+    <string name="navigation_drawer_close">Close navigation drawer</string>
+    <string name="show_system_visibility">Pokaż aplikacje systemowe</string>
+    <string name="hide_system_visibility">Ukryj aplikacje systemowe</string>
+    <string name="action_about">O projekcie</string>
+    <string name="action_licence">Licencja</string>
+    <string name="drawer_header">Aplikacje, które&#8230;</string>
+    <string name="do_you_trust">\u2193 Czy ufasz im wszystkim?</string>
+    <string name="apps_that">"Aplikacje, które "</string>
+    <string name="about">O akcji&#8230;</string>
+    <string name="action_description">Aplikacje w Twoim urzÄ…dzeniu majÄ… czÄ™sto szerokie uprawnienia i mogÄ… wiele namieszać. Czy ufasz im wszystkim?</string>
+    <string name="action_description_link_text">Dowiedz siÄ™ wiÄ™cej o aplikacjach</string>
+    <string name="financing_info">Projekt dofinansowano ze Å›rodków\nMinisterstwa Administracji i Cyfryzacji.</string>
+    <string name="fond">Fundacja Nowoczesna Polska</string>
+    <string name="gov">Ministerstwo Administracji i Cyfryzacji</string>
+    <string name="samsung">Samsung</string>
+
+<!-- NvigationDrawer -->
+    <string name="drawer_header_text_prefix">&#8230;</string>
+    <string name="items_string_quantity">Liczba aplikacji tego typu:&#160;</string>
+    
+<!-- AppInfo -->
+    <string name="app_detail_header">Czy wiesz, Å¼e ta aplikacja:</string>
+    <string name="app_detail_uninstall_button">Odinstaluj</string>
+    <string name="app_detail_settings_button">Ustawienia</string>
+    <string name="app_detail_more_info_button">Co mogÄ™ zrobić</string>
+    <string name="app_detail_settings_app_text">To jest aplikacja systemowa.</string>
+    
+<!-- PopupActivity -->
+    <string name="popup_moreinfo_button">WiÄ™cej Informacji&#8230;</string>
+    <string name="popup_back_button">Powrót</string>
+    
+<!-- Links -->
+    <string name="fond_site">"http://www.nowoczesnapolska.org.pl/"</string>
+    <string name="gov_site">"http://www.mac.gov.pl/"</string>
+    <string name="samsung_site">"http://www.samsung.com/pl/home"</string>
+    <string name="welcome_more_info">"http://www.nowoczesnapolska.org.pl/"</string>
+    <string name="app_info_more_info">"http://edukacjamedialna.edu.pl/lekcje/aplikacje-mobilne/"</string>
+
+<!-- LicenceDialog -->
+    <string name="license_text">Aplikacja na licencji AGPL v. 3.0</string>
+    <string name="license_link">http://www.gnu.org/licenses/agpl-3.0.txt</string>
+    <string name="license_companies">PomysÅ‚odawca i współtwórca aplikacji: Fundacja Nowoczesna Polska\n\nWspółtwórca aplikacji i realizacja: Samsung Electronics Polska Sp. z o.o.\n\nProjekt finansowany ze Å›rodków Ministerstwa Administracji i Cyfryzacji.</string>
+</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
new file mode 100644 (file)
index 0000000..fb7df43
--- /dev/null
@@ -0,0 +1,48 @@
+<resources>\r
+\r
+    <!--\r
+        Base application theme, dependent on API level. This theme is replaced\r
+        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.\r
+    -->\r
+    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">\r
+        <!--\r
+            Theme customizations available in newer API levels can go in\r
+            res/values-vXX/styles.xml, while customizations related to\r
+            backward-compatibility can go here.\r
+        -->\r
+        <item name="android:actionBarStyle">@style/MyActionBar</item>\r
+\r
+        <!-- Support library compatibility -->\r
+        <item name="actionBarStyle">@style/MyActionBar</item>\r
+    </style>\r
+\r
+    <!-- Application theme. -->\r
+    <style name="AppTheme" parent="AppBaseTheme">\r
+        <!-- All customizations that are NOT specific to a particular API-level can go here. -->\r
+        <item name="android:windowAnimationStyle">@style/ActivityAnimation</item>\r
+        \r
+    </style>\r
+\r
+    <style name="WelcomeDialog" parent="@android:style/Theme.Black.NoTitleBar">\r
+        <item name="android:windowAnimationStyle">@style/WelcomeDialogAnimation</item>\r
+    </style>\r
+\r
+    <style name="WelcomeDialogAnimation">\r
+        <item name="android:windowEnterAnimation">@anim/fadein</item>\r
+        <item name="android:windowExitAnimation">@anim/slide_right</item>\r
+    </style>\r
+\r
+    <style name="ActivityAnimation">\r
+        <item name="android:windowEnterAnimation">@anim/fadein</item>\r
+        <item name="android:windowExitAnimation">@anim/fadeout</item>\r
+    </style>\r
+\r
+    <!-- ActionBar styles -->\r
+    <style name="MyActionBar"\r
+           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">\r
+        <item name="android:background">@drawable/actionbar_background</item>\r
+\r
+        <!-- Support library compatibility -->\r
+        <item name="background">@drawable/actionbar_background</item>\r
+    </style>\r
+</resources>\r
diff --git a/res/xml/categories.xml b/res/xml/categories.xml
new file mode 100644 (file)
index 0000000..9ba3890
--- /dev/null
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<container>\r
+    <category>\r
+        <title>Prywatność</title>\r
+        <header>wiedzÄ… o Tobie wszystko</header>\r
+        <short_description>Te aplikacje majÄ… dostÄ™p do Twoich danych i mogÄ… wysÅ‚ać poza Twoje urzÄ…dzenie.</short_description>\r
+        <description>Te aplikacje majÄ… dostÄ™p do Twoich danych i mogÄ… wysÅ‚ać poza Twoje urzÄ…dzenie. ZÅ‚oÅ›liwa aplikacja mogÅ‚aby wykraść Twoje hasÅ‚a lub prywatne zdjÄ™cia ze spotkaÅ„ ze znajomymi.</description>\r
+        <icon>ic_profile_drawer</icon>\r
+        <link>http://edukacjamedialna.edu.pl/lekcje/prywatnosc-w-sieci/</link>\r
+        <dataSend>true</dataSend>\r
+        <subcategories>\r
+            <subcategory>\r
+                <id>komunikacja</id>\r
+                <header>komunikacja</header>\r
+                <description>Może Å›ledzić TwojÄ… komunikacjÄ™ przez telefon, sms lub internet</description>\r
+                <icon>ic_communication</icon>\r
+                <permissions>\r
+                    <item>android.permission.ACCOUNT_MANAGER</item>\r
+                    <item>android.permission.AUTHENTICATE_ACCOUNTS</item>\r
+                    <item>android.permission.GET_ACCOUNTS</item>\r
+                    <item>android.permission.MANAGE_ACCOUNTS</item>\r
+                    <item>android.permission.READ_CALENDAR</item>\r
+                    <item>android.permission.READ_CALL_LOG</item>\r
+                    <item>android.permission.READ_CONTACTS</item>\r
+                    <item>com.android.browser.permission.READ_HISTORY_BOOKMARKS</item>\r
+                    <item>android.permission.READ_PHONE_STATE</item>\r
+                    <item>android.permission.READ_PRIVILEGED_PHONE_STATE</item>\r
+                    <item>android.permission.READ_PROFILE</item>\r
+                    <item>android.permission.READ_SMS</item>\r
+                    <item>android.permission.READ_SOCIAL_STREAM</item>\r
+                    <item>com.android.voicemail.permission.READ_VOICEMAIL</item>\r
+                    <item>android.permission.RECEIVE_SMS</item>\r
+                    <item>android.permission.RECORD_AUDIO</item>\r
+                    <item>android.permission.SUBSCRIBED_FEEDS_READ</item>\r
+                    <item>android.permission.USE_CREDENTIALS</item>\r
+                    <item>android.permission.USE_SIP</item>\r
+                    <item>android.permission.DIAGNOSTIC</item>\r
+                    <item>android.permission.DUMP</item>\r
+                    <item>android.permission.READ_LOGS</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>lokalizacja</id>\r
+                <header>lokalizacja</header>\r
+                <description>Może ustalić, gdzie jesteÅ›</description>\r
+                <icon>ic_location</icon>\r
+                <permissions>\r
+                    <item>android.permission.ACCESS_CHECKIN_PROPERTIES</item>\r
+                    <item>android.permission.ACCESS_COARSE_LOCATION</item>\r
+                    <item>android.permission.ACCESS_FINE_LOCATION</item>\r
+                    <item>android.permission.ACCESS_LOCATION_EXTRA_COMMANDS</item>\r
+                    <item>android.permission.ACCESS_WIFI_STATE</item>\r
+                    <item>android.permission.LOCATION_HARDWARE</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>pliki_prywatnosc</id>\r
+                <header>pliki</header>\r
+                <description>Ma dostÄ™p do Twoich zdjęć, dokumentów i innych plików</description>\r
+                <icon>ic_files</icon>\r
+                <permissions>\r
+                    <item>android.permission.MANAGE_DOCUMENTS</item>\r
+                    <item>android.permission.MEDIA_CONTENT_CONTROL</item>\r
+                    <item>android.permission.READ_EXTERNAL_STORAGE</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>podsluch</id>\r
+                <header>podsÅ‚uch</header>\r
+                <description>Może CiÄ™ podÅ‚uchiwać lub podglÄ…dać, korzystajÄ…c z mikrofonu, kamery bÄ…dź innych sensorów obecnych w urzÄ…dzeniu</description>\r
+                <icon>ic_wiretapping</icon>\r
+                <permissions>\r
+                    <item>android.permission.BODY_SENSORS</item>\r
+                    <item>android.permission.CAMERA</item>\r
+                    <item>android.permission.PROCESS_OUTGOING_CALLS</item>\r
+                    <item>android.permission.CALL_PHONE</item>\r
+                    <item>android.permission.CALL_PRIVILEGED</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>urzadzenie_prywatosc</id>\r
+                <header>UrzÄ…dzenie</header>\r
+                <description>Może Å›ledzić TwojÄ… aktywność na urzÄ…dzeniu, np. zapisujÄ…c obraz wyÅ›wietlany na ekranie</description>\r
+                <icon>ic_device</icon>\r
+                <permissions>\r
+                    <item>android.permission.CAPTURE_AUDIO_OUTPUT</item>\r
+                    <item>android.permission.CAPTURE_SECURE_VIDEO_OUTPUT</item>\r
+                    <item>android.permission.CAPTURE_VIDEO_OUTPUT</item>\r
+                    <item>android.permission.DIAGNOSTIC</item>\r
+                    <item>android.permission.DUMP</item>\r
+                    <item>android.permission.READ_FRAME_BUFFER</item>\r
+                    <item>android.permission.READ_LOGS</item>\r
+                    <item>android.permission.READ_USER_DICTIONARY</item>\r
+                    <item>android.permission.SET_ACTIVITY_WATCHER</item>\r
+                </permissions>\r
+            </subcategory>\r
+        </subcategories>\r
+    </category>\r
+    \r
+    <category>\r
+        <title>Koszty</title>\r
+        <header>mogÄ… CiÄ™ narazić na koszty</header>\r
+        <short_description>Te aplikacje mogÄ… nawiÄ…zywać pÅ‚atne poÅ‚Ä…czenia i wysyÅ‚ać wiadomoÅ›ci, nawet bez Twojego potwierdzenia.</short_description>\r
+        <description>Te aplikacje mogÄ… nawiÄ…zywać pÅ‚atne poÅ‚Ä…czenia i wysyÅ‚ać wiadomoÅ›ci, nawet bez Twojego potwierdzenia. ZÅ‚oÅ›liwa aplikacja mogÅ‚aby narazić CiÄ™ na bardzo wysoki rachunek.</description>\r
+        <icon>ic_wallet_drawer</icon>\r
+        <link>http://edukacjamedialna.edu.pl/lekcje/mobilne-koszty/</link>\r
+        <dataSend>false</dataSend>\r
+        <subcategories>    \r
+            <subcategory>\r
+                <id>telefon_koszty</id>\r
+                <header>telefon</header>\r
+                <description>Może nawiÄ…zać pÅ‚atne poÅ‚Ä…czenie telefoniczne</description>\r
+                <icon>ic_call</icon>\r
+                <permissions>\r
+                    <item>android.permission.CALL_PHONE</item>\r
+                    <item>android.permission.CALL_PRIVILEGED</item>\r
+                    <item>android.permission.PROCESS_OUTGOING_CALLS</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>sms_mms</id>\r
+                <header>sms/mms</header>\r
+                <description>Może wysyÅ‚ać sms-y i mms-y</description>\r
+                <icon>ic_sms</icon>\r
+                <permissions>\r
+                    <item>android.permission.SEND_SMS</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>dane</id>\r
+                <header>Dane</header>\r
+                <description>Może spowodować pÅ‚atnÄ… transmisjÄ™ danych</description>\r
+                <icon>ic_data_transmission</icon>\r
+                <permissions>\r
+                    <item>android.permission.CHANGE_NETWORK_STATE</item>\r
+                    <item>android.permission.INTERNET</item>\r
+                    <item>android.permission.WRITE_APN_SETTINGS</item>\r
+                </permissions>\r
+            </subcategory>\r
+        </subcategories>\r
+    </category>\r
+    \r
+    <category>\r
+        <title>UrzÄ…dzenie</title>\r
+        <header>mogÄ… uszkodzić Twoje urzÄ…dzenie</header>\r
+        <short_description>Te aplikacje mogÄ… zmieniać ustawienia systemu i majÄ… szeroki dostÄ™p do sprzÄ™tu.</short_description>\r
+        <description>Te aplikacje mogÄ… zmieniać ustawienia systemu i majÄ… szeroki dostÄ™p do sprzÄ™tu. ZÅ‚oÅ›liwa aplikacja mogÅ‚aby uszkodzić Twoje urzÄ…dzenie, albo bardzo utrudnić Ci korzystanie z niego.</description>\r
+        <icon>ic_device_drawer</icon>\r
+        <link>http://edukacjamedialna.edu.pl/lekcje/kontrola-nad-urzadzeniem/</link>\r
+        <dataSend>false</dataSend>\r
+        <subcategories>    \r
+            <subcategory>\r
+                <id>psuje</id>\r
+                <header>psuje</header>\r
+                <description>Może coÅ› zepsuć â€“ np. trwale usunąć Twoje dane</description>\r
+                <icon>ic_broke</icon>\r
+                <permissions>\r
+                    <item>android.permission.BRICK</item>\r
+                    <item>android.permission.CLEAR_APP_USER_DATA</item>\r
+                    <item>android.permission.DELETE_PACKAGES</item>\r
+                    <item>android.permission.DIAGNOSTIC</item>\r
+                    <item>android.permission.INSTALL_PACKAGES</item>\r
+                    <item>android.permission.MASTER_CLEAR</item>\r
+                    <item>android.permission.MOUNT_FORMAT_FILESYSTEMS</item>\r
+                    <item>android.permission.WRITE_GSERVICES</item>\r
+                    <item>android.permission.WRITE_SECURE_SETTINGS</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>utrudniacze</id>\r
+                <header>utrudniacze</header>\r
+                <description>Może utrudnić Ci korzystanie z urzÄ…dzenia, np. przez zmianÄ™ ustawieÅ„</description>\r
+                <icon>ic_disturb</icon>\r
+                <permissions>\r
+                    <item>android.permission.CHANGE_COMPONENT_ENABLED_STATE</item>\r
+                    <item>android.permission.CHANGE_CONFIGURATION</item>\r
+                    <item>android.permission.CHANGE_WIFI_STATE</item>\r
+                    <item>android.permission.DEVICE_POWER</item>\r
+                    <item>android.permission.INJECT_EVENTS</item>\r
+                    <item>android.permission.KILL_BACKGROUND_PROCESSES</item>\r
+                    <item>android.permission.REBOOT</item>\r
+                </permissions>\r
+            </subcategory>\r
+        </subcategories>\r
+    </category>\r
+    \r
+    <category>\r
+        <title>Phishing</title>\r
+        <header>mogÄ… CiÄ™ oszukać</header>\r
+        <short_description>Te aplikacje mogÄ… modyfikować prywatne dane na Twoim urzÄ…dzeniu (jak zapisane wiadomoÅ›ci czy historiÄ™ poÅ‚Ä…czeÅ„)</short_description>\r
+        <description>Te aplikacje mogÄ… modyfikować prywatne dane na Twoim urzÄ…dzeniu (jak zapisane wiadomoÅ›ci czy historiÄ™ poÅ‚Ä…czeÅ„). ZÅ‚oÅ›liwa aplikacja mogÅ‚aby podszyć siÄ™ pod TwojÄ… rodzinÄ™, znajomych lub... bank.</description>\r
+        <icon>ic_warning_drawer</icon>\r
+        <link>http://edukacjamedialna.edu.pl/lekcje/phishing-i-spam/</link>\r
+        <dataSend>false</dataSend>\r
+        <subcategories>    \r
+            <subcategory>\r
+                <id></id>\r
+                <header>moje cyfrowe Å¼ycie</header>\r
+                <description>Może korzystać z Twoich kont, zmieniajÄ…c np. wpisy w kalendarzu lub kontakty</description>\r
+                <icon>ic_cyber_profile</icon>\r
+                <permissions>\r
+                    <item>android.permission.MANAGE_ACCOUNTS</item>\r
+                    <item>android.permission.SUBSCRIBED_FEEDS_WRITE</item>\r
+                    <item>android.permission.USE_CREDENTIALS</item>\r
+                    <item>android.permission.WRITE_APN_SETTINGS</item>\r
+                    <item>android.permission.WRITE_CONTACTS</item>\r
+                    <item>android.permission.WRITE_CALENDAR</item>\r
+                    <item>com.android.browser.permission.WRITE_HISTORY_BOOKMARKS</item>\r
+                    <item>android.permission.WRITE_SOCIAL_STREAM</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>zapisuje_pliki</id>\r
+                <header>zapisuje pliki</header>\r
+                <description>Może zmienić treść Twoich plików</description>\r
+                <icon>ic_files_edit</icon>\r
+                <permissions>\r
+                    <item>android.permission.MANAGE_DOCUMENTS</item>\r
+                    <item>android.permission.WRITE_EXTERNAL_STORAGE</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>telefon_phishing</id>\r
+                <header>telefon</header>\r
+                <description>Może zmodyfikować historiÄ™ poÅ‚Ä…czeÅ„ lub sms-ów albo np. przechwycić poÅ‚Ä…czenie telefoniczne</description>\r
+                <icon>ic_communication</icon>\r
+                <permissions>\r
+                    <item>com.android.voicemail.permission.ADD_VOICEMAIL</item>\r
+                    <item>android.permission.MODIFY_PHONE_STATE</item>\r
+                    <item>android.permission.PROCESS_OUTGOING_CALLS</item>\r
+                    <item>android.permission.WRITE_CALL_LOG</item>\r
+                    <item>android.permission.WRITE_SMS</item>\r
+                    <item>com.android.voicemail.permission.WRITE_VOICEMAIL</item>\r
+                </permissions>\r
+            </subcategory>\r
+            \r
+            <subcategory>\r
+                <id>urzadzenie_phishing</id>\r
+                <header>UrzÄ…dzenie</header>\r
+                <description>Może przejąć kontrolÄ™ nad sposobem, w jaki korzystasz z urzÄ…dzenia</description>\r
+                <icon>ic_device_control</icon>\r
+                <permissions>\r
+                    <item>android.permission.DISABLE_KEYGUARD</item>\r
+                    <item>android.permission.INJECT_EVENTS</item>\r
+                    <item>android.permission.SYSTEM_ALERT_WINDOW</item>\r
+                    <item>android.permission.WRITE_SETTINGS</item>\r
+                </permissions>\r
+            </subcategory>\r
+        </subcategories>\r
+    </category>\r
+</container>
\ No newline at end of file
diff --git a/res/xml/data_send_subcategory.xml b/res/xml/data_send_subcategory.xml
new file mode 100644 (file)
index 0000000..d534344
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<subcategory>
+    <id>uprawnienia_do_przesylu_danych</id>
+    <header>uprawnienia do przesyÅ‚u danych</header>
+    <description>Może wysyÅ‚ać dane z twojego urzÄ…dzenia</description>
+    <icon>ic_data_sending</icon>
+    <permissions>
+     <item>android.permission.BIND_NFC_SERVICE</item>
+     <item>android.permission.BLUETOOTH</item>
+     <item>android.permission.BLUETOOTH_ADMIN</item>
+     <item>android.permission.BLUETOOTH_PRIVILEGED</item>
+     <item>android.permission.INTERNET</item>
+     <item>android.permission.NFC</item>
+     <item>android.permission.SEND_SMS</item>
+     <item>android.permission.TRANSMIT_IR</item>
+     <item>android.permission.CALL_PHONE</item>
+     <item>android.permission.CALL_PRIVILEGED</item>
+    </permissions>
+</subcategory>
diff --git a/src/com/samsung/srpol/data/Category.java b/src/com/samsung/srpol/data/Category.java
new file mode 100644 (file)
index 0000000..8127b82
--- /dev/null
@@ -0,0 +1,147 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.data;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import com.samsung.srpol.loader.AppDetails;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+
+public class Category {
+
+    private String mTitle;
+    private String mHeader;
+    private String mDescription;
+    private String mShortDescription;
+    private int mSubCategoriesMask;
+    private int mIconRes;
+    private String mLink;
+    private boolean mCanSendData;
+    private Drawable mIconDrawable;
+    private ArrayList<Subcategory> mSubCategories;
+    private ArrayList<AppDetails> mRelatedApps = new ArrayList<AppDetails>();
+    private int mCurrentlyVisible;
+
+    public Category(Context ctx, String title, String header,
+            String shortDescription, String description, int icon, String link,
+            boolean dataSend, ArrayList<Subcategory> subCategories) {
+        mTitle = title;
+        mHeader = header;
+        mShortDescription = shortDescription;
+        mDescription = description;
+        mIconRes = icon;
+        mLink = link;
+        mIconDrawable = ctx.getResources().getDrawable(mIconRes);
+        mSubCategories = subCategories;
+        for (Subcategory subcategory : mSubCategories)
+            mSubCategoriesMask = mSubCategoriesMask | subcategory.getId();
+        mCanSendData = dataSend;
+        mCurrentlyVisible = mRelatedApps.size();
+    }
+
+    public void removeAppFromList(AppDetails removed) {
+        mRelatedApps.remove(removed);
+    }
+
+    public int getSubCategoriesMask() {
+        return mSubCategoriesMask;
+    }
+    
+    public void addApplicationToCategory(AppDetails toBeAdded) {
+        int size = mRelatedApps.size();
+        addAppToList(toBeAdded);
+        if (size < mRelatedApps.size())
+            Collections.sort(mRelatedApps, AppDetails.SMART_COMPARATOR);
+    }
+
+    private void addAppToList(AppDetails toBeAdded) {
+        // Checking if any subcategory fits
+        if (!toBeAdded.isInSubcategory(mSubCategoriesMask)
+                || (mCanSendData && !toBeAdded
+                        .isInSubcategory(Subcategory.CAN_SEND_DATA_SUB_CATEGORY_ID)))
+            return;
+        mRelatedApps.add(toBeAdded);
+    }
+
+    public List<Subcategory> getSubCategories() {
+        return mSubCategories;
+    }
+
+    /**
+     * Create app list
+     */
+    public void assignAppsToCategory(List<AppDetails> appDetailsList) {
+        mRelatedApps.clear();
+
+        if (appDetailsList != null && mSubCategories != null) {
+            for (AppDetails appDetails : appDetailsList) {
+                addAppToList(appDetails);
+            }
+        }
+    }
+
+    /**
+     * @return the mRelatedApps
+     */
+    public ArrayList<AppDetails> getRelatedApps() {
+        return mRelatedApps;
+    }
+
+    public int getIconRes() {
+        return mIconRes;
+    }
+
+    public Drawable getIconDrawable() {
+        return mIconDrawable;
+    }
+
+    public String getTitle() {
+        return mTitle;
+    }
+
+    public String getDescription() {
+        return mDescription;
+    }
+
+    public String getHeader() {
+        return mHeader;
+    }
+
+    public String getShortDescription() {
+        return mShortDescription;
+    }
+
+    public void updateVisibleCount(int size) {
+        mCurrentlyVisible = size;
+    }
+
+    public int getCurrentlyVisible() {
+        return mCurrentlyVisible;
+    }
+
+    public String getLink() {
+        return mLink;
+    }
+}
diff --git a/src/com/samsung/srpol/data/Subcategory.java b/src/com/samsung/srpol/data/Subcategory.java
new file mode 100644 (file)
index 0000000..6eb1bc5
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.data;
+
+import java.util.ArrayList;
+
+import android.content.Context;
+import android.content.res.Resources.NotFoundException;
+import android.graphics.drawable.Drawable;
+
+public class Subcategory {
+
+    public static final int CAN_SEND_DATA_SUB_CATEGORY_ID = 1;
+    public static final String CAN_SEND_DATA_SUB_CATEGORY_HEADER = "uprawnienia do przesyÅ‚u danych";
+    private static final String DARK_SUFIX = "_dark";
+    private static final String DISABLE_SUFIX = "_disable";
+    private static int mIdGenerator = 2;
+
+    private int mSubcatId;
+    private String mHeader;
+    private String mDescription;
+    private int mIconRes;
+    private Drawable mIconDrawable;
+    private Drawable mIconDarkDrawable;
+    private Drawable mIconDisabledDrawable;
+    private ArrayList<String> mPermissions;
+
+    public Subcategory(Context context, String header, String description,
+            String icon, ArrayList<String> permissions) {
+        mHeader = header;
+        mDescription = description;
+        if (mHeader.equals(CAN_SEND_DATA_SUB_CATEGORY_HEADER)) {
+            mSubcatId = CAN_SEND_DATA_SUB_CATEGORY_ID;
+        } else {
+            mSubcatId = mIdGenerator;
+            mIdGenerator = mIdGenerator << 1;
+        }
+
+        String packageName = context.getPackageName();
+        mIconRes = context.getResources().getIdentifier(icon, "drawable",
+                packageName);
+        mIconDrawable = context.getResources().getDrawable(mIconRes);
+
+        int iconDarkRes = context.getResources().getIdentifier(
+                icon.concat(DARK_SUFIX), "drawable", packageName);
+        try {
+            mIconDarkDrawable = context.getResources().getDrawable(iconDarkRes);
+        } catch (NotFoundException ex) {
+            mIconDarkDrawable = mIconDrawable;
+        }
+        
+        int iconDisableRes = context.getResources().getIdentifier(icon.concat(DISABLE_SUFIX), "drawable", packageName);
+        try {
+            mIconDisabledDrawable = context.getResources().getDrawable(iconDisableRes);
+        } catch (NotFoundException ex) {
+            mIconDisabledDrawable = mIconDrawable;
+        }
+        
+        mPermissions = permissions;
+    }
+
+    public ArrayList<String> getPermissions() {
+        return mPermissions;
+    }
+
+    public int getId() {
+        return mSubcatId;
+    }
+
+    public String getHeader() {
+        return mHeader;
+    }
+
+    public Drawable getIconDrawable() {
+        return mIconDrawable;
+    }
+
+    public Drawable getDarkIcon() {
+        return mIconDarkDrawable;
+    }
+    
+    public Drawable getDisabledIcon() {
+        return mIconDisabledDrawable;
+    }
+
+    public String getDescription() {
+        return mDescription;
+    }
+
+    public static void resetGenerator() {
+        mIdGenerator = 2;
+    }
+
+}
diff --git a/src/com/samsung/srpol/loader/AppDetails.java b/src/com/samsung/srpol/loader/AppDetails.java
new file mode 100644 (file)
index 0000000..6fff62b
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.loader;
+
+import java.io.File;
+import java.util.Comparator;
+
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.graphics.ColorMatrix;
+import android.graphics.ColorMatrixColorFilter;
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+
+/**
+ * Helper class containing details about given permission
+ * 
+ * This Class contains : String mPermissionName; String
+ *         mPermissionLabel; String mPermissionDetails;
+ */
+public class AppDetails {
+    public static final String TAG = "AppDetails";
+    private static final ColorMatrixColorFilter mGrayscaleFilter;
+
+    private String mAppName;
+    private String mPackageName;
+    private Drawable mAppIcon;
+    private boolean mSystemApp;
+
+    private int mSubCategoriesMask;
+
+    private static AppListLoader mLoader;
+    private boolean mEnabled;
+    private boolean mMounted;
+    private final File mApkFile;
+
+    static {
+        ColorMatrix matrix = new ColorMatrix();
+        matrix.setSaturation(0);
+        mGrayscaleFilter = new ColorMatrixColorFilter(matrix);
+    }
+
+    public AppDetails(AppListLoader loader, PackageInfo packageinfo) {
+        mLoader = loader;
+        mPackageName = packageinfo.applicationInfo.packageName;
+        mEnabled = packageinfo.applicationInfo.enabled;
+        mApkFile = new File(packageinfo.applicationInfo.sourceDir);
+        if (!mApkFile.exists()) {
+            mMounted = false;
+            mAppName = packageinfo.applicationInfo.packageName;
+        } else {
+            mMounted = true;
+            CharSequence label = packageinfo.applicationInfo.loadLabel(mLoader.getPm());
+            mAppName = label != null ? label.toString()
+                    : packageinfo.applicationInfo.packageName;
+        }
+        mSystemApp = (packageinfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0;
+    }
+
+    /**
+     * @return the mAppName
+     */
+    public String getAppName() {
+        return mAppName;
+    }
+
+    /**
+     * @return the mAppPackageName
+     */
+    public String getAppPackageName() {
+        return mPackageName;
+    }
+
+    /**
+     * @return the mAppIcon
+     */
+    public Drawable getAppIcon() {
+        if (mAppIcon == null || !mMounted) {
+            if (mApkFile.exists()) {
+                try {
+                    mAppIcon = mLoader.getPm().getApplicationIcon(mPackageName);
+                } catch (NameNotFoundException e) {
+                    mAppIcon = mLoader.getContext().getResources()
+                            .getDrawable(android.R.drawable.sym_def_app_icon);
+                }
+                mMounted = true;
+                return updateAppIconColor(mAppIcon);
+            } else {
+                mMounted = false;
+                return updateAppIconColor(mLoader.getContext().getResources()
+                        .getDrawable(android.R.drawable.sym_def_app_icon));
+            }
+        } else
+            return mAppIcon;
+    }
+
+    public int getSubcategoriesMask() {
+        return mSubCategoriesMask;
+    }
+
+    public boolean isInSubcategory(int subcategoryId) {
+        return (mSubCategoriesMask & subcategoryId) > 0;
+    }
+    
+    public boolean isInAllSubcategories(int subcategoryIds) {
+        return (mSubCategoriesMask & subcategoryIds) == subcategoryIds;
+    }
+
+    public boolean isEnabled() {
+        return mEnabled;
+    }
+
+    public void setEnabled(boolean state) {
+        mEnabled = state;
+        updateAppIconColor(mAppIcon);
+    }
+
+    private Drawable updateAppIconColor(Drawable icon) {
+        // disabling and enabling apps in system application manager is
+        // available since API 4.0
+        if (icon != null
+                && Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+            if (mEnabled) {
+                icon.setColorFilter(null);
+            } else {
+                icon.setColorFilter(mGrayscaleFilter);
+            }
+        }
+        return icon;
+    }
+
+    /**
+     * @return the mSystemApp
+     */
+    public boolean isSystemApp() {
+        return mSystemApp;
+    }
+
+    public void addSubcategory(int id) {
+        mSubCategoriesMask |= id;
+    }
+
+    /**
+     * @return the mAppPackageName
+     */
+    @Override
+    public String toString() {
+        return mPackageName;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o instanceof AppDetails) {
+            AppDetails appDetails = (AppDetails) o;
+            if (appDetails.getAppPackageName().equals(mPackageName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Perform inteligent comparison of application entry objects.
+     */
+    public static final Comparator<AppDetails> SMART_COMPARATOR = new Comparator<AppDetails>() {
+        @Override
+        public int compare(AppDetails object1, AppDetails object2) {
+            if (object1.mSystemApp) {
+                if (object2.mSystemApp)
+                    return object1.mAppName.compareTo(object2.mAppName);
+                return 1;
+            } else {
+                if (object2.mSystemApp)
+                    return -1;
+                return object1.mAppName.compareTo(object2.mAppName);
+            }
+        }
+    };
+}
diff --git a/src/com/samsung/srpol/loader/AppListChangeListener.java b/src/com/samsung/srpol/loader/AppListChangeListener.java
new file mode 100644 (file)
index 0000000..d176903
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.loader;
+
+public interface AppListChangeListener {
+
+    public void onAppListChanged();
+}
diff --git a/src/com/samsung/srpol/loader/AppListLoader.java b/src/com/samsung/srpol/loader/AppListLoader.java
new file mode 100644 (file)
index 0000000..3dfdb0f
--- /dev/null
@@ -0,0 +1,627 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.loader;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+import org.xmlpull.v1.XmlPullParserException;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.Signature;
+import android.content.res.XmlResourceParser;
+import android.support.v4.content.AsyncTaskLoader;
+
+import com.samsung.srpol.R;
+import com.samsung.srpol.data.Category;
+import com.samsung.srpol.data.Subcategory;
+
+/**
+ * A custom Loader that loads all of the installed applications.
+ */
+public class AppListLoader extends AsyncTaskLoader<List<AppDetails>> {
+    private static final String SYSTEM_UI = "com.android.systemui";
+    private static final String PHONE = "com.android.phone";
+
+    public static final String PREF_INCLUDE_SYSTEM_APPS = "include_system_apps";
+
+    private final PackageManager mPm;
+
+    private static List<AppDetails> mAppDetailsList = null;
+    private static List<Category> mCategories;
+    private static ArrayList<Subcategory> mSubcategories;
+    private static HashMap<String, Integer> mAllPermissionsHash;
+
+    private PackageIntentReceiver mPackageObserver;
+    private boolean mWasDataReloaded = true;
+    private static OnAppRemoveListener mChangeListener = null;
+
+    public AppListLoader(Context context) {
+        super(context);
+
+        if (mCategories == null || mSubcategories == null
+                || mAllPermissionsHash == null)
+            initCategories(context);
+
+        mPm = getContext().getPackageManager();
+    }
+
+    private void initCategories(Context context) {
+        mCategories = new ArrayList<Category>();
+        mSubcategories = new ArrayList<Subcategory>();
+        Subcategory.resetGenerator();
+
+        // Reading "data send" subcategory as it is common
+        try {
+            XmlResourceParser parser = context.getResources().getXml(
+                    R.xml.data_send_subcategory);
+            int eventType = 0;
+            while (eventType != XmlResourceParser.END_DOCUMENT
+                    && eventType != XmlResourceParser.START_TAG)
+                eventType = parser.next();
+            if (eventType != XmlResourceParser.END_DOCUMENT) {
+                Subcategory subcategory = readSubCategory(parser);
+                mSubcategories.add(subcategory);
+            }
+        } catch (XmlPullParserException ex) {
+            ex.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        // Reading all categories and subcategories from xml
+        try {
+            XmlResourceParser parser = context.getResources().getXml(
+                    R.xml.categories);
+            int eventType = 0;
+            while (eventType != XmlResourceParser.END_DOCUMENT
+                    && eventType != XmlResourceParser.START_TAG)
+                eventType = parser.next();
+            if (eventType != XmlResourceParser.END_DOCUMENT) {
+                parser.require(XmlResourceParser.START_TAG, null, "container");
+                while (parser.next() != XmlResourceParser.END_TAG) {
+                    if (parser.getEventType() != XmlResourceParser.START_TAG)
+                        continue;
+                    if (!parser.getName().equals("category"))
+                        continue;
+                    Category cat = readCategory(parser);
+                    mCategories.add(cat);
+                    mSubcategories.addAll(cat.getSubCategories());
+                }
+            }
+        } catch (XmlPullParserException ex) {
+            ex.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        mAllPermissionsHash = new HashMap<String, Integer>();
+        for (Subcategory subcat : mSubcategories) {
+            for (String perm : subcat.getPermissions()) {
+                Integer value = mAllPermissionsHash.get(perm);
+                if (value == null) {
+                    mAllPermissionsHash.put(perm, Integer.valueOf(subcat.getId()));
+                } else {
+                    value |= subcat.getId();
+                    mAllPermissionsHash.put(perm, value);
+                }
+            }
+        }
+    }
+
+    private Category readCategory(XmlResourceParser parser)
+            throws XmlPullParserException, IOException {
+        parser.require(XmlResourceParser.START_TAG, null, "category");
+        String title = null, header = null, description = null, shortDescription = null, link = null;
+        int icon = 0;
+        boolean dataSend = false;
+        ArrayList<Subcategory> subCategories = new ArrayList<Subcategory>();
+
+        while (parser.next() != XmlResourceParser.END_TAG) {
+            if (parser.getEventType() != XmlResourceParser.START_TAG)
+                continue;
+            String name = parser.getName();
+            if (name.equals("title")) {
+                title = readTextElement(parser, name);
+            } else if (name.equals("header")) {
+                header = readTextElement(parser, name);
+            } else if (name.equals("short_description")) {
+                shortDescription = readTextElement(parser, name);
+            } else if (name.equals("description")) {
+                description = readTextElement(parser, name);
+            } else if (name.equals("icon")) {
+                icon = getContext().getResources().getIdentifier(
+                        readTextElement(parser, name), "drawable",
+                        getContext().getPackageName());
+            } else if (name.equals("link")) {
+                link = readTextElement(parser, name);
+            } else if (name.equals("dataSend")) {
+                dataSend = Boolean.parseBoolean(readTextElement(parser, name));
+            } else if (name.equals("subcategories")) {
+                while (parser.next() != XmlResourceParser.END_TAG) {
+                    subCategories.add(readSubCategory(parser));
+                }
+            } else
+                skip(parser);
+        }
+        return new Category(getContext(), title, header, shortDescription,
+                description, icon, link, dataSend, subCategories);
+    }
+
+    private Subcategory readSubCategory(XmlResourceParser parser)
+            throws XmlPullParserException, IOException {
+        parser.require(XmlResourceParser.START_TAG, null, "subcategory");
+        String header = null, description = null, icon = null;
+        ArrayList<String> permissions = new ArrayList<String>();
+
+        while (parser.next() != XmlResourceParser.END_TAG) {
+            if (parser.getEventType() != XmlResourceParser.START_TAG)
+                continue;
+            String name = parser.getName();
+            if (name.equals("header")) {
+                header = readTextElement(parser, name);
+            } else if (name.equals("description")) {
+                description = readTextElement(parser, name);
+            } else if (name.equals("icon")) {
+                icon = readTextElement(parser, name);
+            } else if (name.equals("permissions")) {
+                while (parser.next() != XmlResourceParser.END_TAG) {
+                    permissions.add(readTextElement(parser, "item"));
+                }
+            } else
+                skip(parser);
+        }
+
+        return new Subcategory(getContext(), header, description, icon,
+                permissions);
+    }
+
+    private String readTextElement(XmlResourceParser parser, String element)
+            throws XmlPullParserException, IOException {
+        parser.require(XmlResourceParser.START_TAG, null, element);
+        String title = readText(parser);
+        parser.require(XmlResourceParser.END_TAG, null, element);
+        return title;
+    }
+
+    private String readText(XmlResourceParser parser)
+            throws XmlPullParserException, IOException {
+        String result = "";
+        if (parser.next() == XmlResourceParser.TEXT) {
+            result = parser.getText();
+            parser.nextTag();
+        }
+        return result;
+    }
+
+    private void skip(XmlResourceParser parser) throws XmlPullParserException,
+            IOException {
+        if (parser.getEventType() != XmlResourceParser.START_TAG) {
+            throw new IllegalStateException();
+        }
+        int depth = 1;
+        while (depth != 0) {
+            switch (parser.next()) {
+            case XmlResourceParser.END_TAG:
+                depth--;
+                break;
+            case XmlResourceParser.START_TAG:
+                depth++;
+                break;
+            }
+        }
+    }
+
+    /**
+     * Get Signature keys of given package
+     * 
+     * @param packageName
+     *            package name to retrieve signature keys
+     * @return Signature[] containing given package name signature keys
+     */
+    private Signature[] getSignature(String packageName) {
+
+        try {
+            PackageInfo packageInfo = getPm().getPackageInfo(packageName,
+                    PackageManager.GET_SIGNATURES);
+            Signature[] sigs = packageInfo.signatures;
+            return sigs;
+        } catch (NameNotFoundException e) {
+            return null;
+        }
+
+    }
+
+    /**
+     * Get Signature keys for given PackageInfo
+     * 
+     * @param packageInfo
+     *            PackageInfo to retrieve signature keys
+     * @return Signature[] containing given PackageInfo signature keys
+     */
+    @SuppressWarnings("unused")
+    private Signature[] getSignature(PackageInfo packageInfo) {
+
+        Signature[] sigs = packageInfo.signatures;
+        return sigs;
+
+    }
+
+    /**
+     * Get Platform signature key. we check signature of SystemUI process or
+     * Phone process
+     * 
+     * @return Signature platform sign key or null if not found
+     */
+    @SuppressWarnings("unused")
+    private Signature getPlatformSignature() {
+        Signature sig = getSignature(SYSTEM_UI)[0];
+        if (sig == null) {
+            sig = getSignature(PHONE)[0];
+        }
+        return sig;
+    }
+
+    /**
+     * Filter given ApplicationInfo list only to apps that are not platform
+     * signed
+     * 
+     * @param appList
+     *            List<ApplicationInfo> with a list of apps to filter
+     * @return List<ApplicationInfo> filtred app list
+     */
+    private List<PackageInfo> filterToNotPlatformKeyAppList(List<PackageInfo> packageList) {
+        if (packageList != null) {
+
+            List<PackageInfo> noPlatformKeyAppList = new ArrayList<PackageInfo>();
+            for (PackageInfo packageInfo : packageList) {
+                try {
+                    packageInfo = mPm.getPackageInfo(packageInfo.packageName,
+                            PackageManager.GET_ACTIVITIES
+                                    | PackageManager.GET_PERMISSIONS
+                                    | PackageManager.GET_SIGNATURES);
+                } catch (NameNotFoundException e) {
+                    continue;
+                }
+                // Check signature match with SystemUI
+                if (((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0 || (packageInfo.activities != null && packageInfo.activities.length > 0))
+                        && getPm().checkSignatures(SYSTEM_UI,
+                                packageInfo.packageName) != PackageManager.SIGNATURE_MATCH) {
+                    noPlatformKeyAppList.add(packageInfo);
+                }
+            }
+            return noPlatformKeyAppList;
+        } else {
+            return null;
+        }
+    }
+
+    private PackageInfo getInstalledAppDetails(String packageName) {
+        PackageInfo info = null;
+        try {
+            info = getPm().getPackageInfo(
+                    packageName,
+                    PackageManager.GET_META_DATA
+                            | PackageManager.GET_PERMISSIONS
+                            | PackageManager.GET_SIGNATURES);
+        } catch (NameNotFoundException e) {
+            e.printStackTrace();
+        }
+        return info;
+    }
+
+    @Override
+    public List<AppDetails> loadInBackground() {
+        List<PackageInfo> appList = mPm.getInstalledPackages(0);
+
+        appList = filterToNotPlatformKeyAppList(appList);
+
+        HashMap<String, AppDetails> appDetailsHash = new HashMap<String, AppDetails>(
+                appList.size());
+        if (mSubcategories.size() == 0) {
+            for (PackageInfo pInfo : appList) {
+                appDetailsHash.put(pInfo.packageName, new AppDetails(this,
+                        pInfo));
+            }
+        } else {
+            for (PackageInfo packageInfo : appList) {
+                String[] requestedPermissions = packageInfo.requestedPermissions;
+                if (requestedPermissions != null) {
+                    AppDetails appDetails = appDetailsHash.get(packageInfo.packageName);
+                    for (String permissionName : requestedPermissions) {
+                        Integer subcategories = mAllPermissionsHash.get(permissionName);
+                        if (subcategories != null 
+                                && (appDetails == null || !appDetails.isInAllSubcategories(subcategories))
+                                && getPm().checkPermission(permissionName,
+                                        packageInfo.packageName) == PackageManager.PERMISSION_GRANTED) {
+                            if (appDetails == null) {
+                                appDetails = new AppDetails(this, packageInfo);
+                                appDetailsHash.put(packageInfo.packageName,
+                                        appDetails);
+                            }
+                            appDetails.addSubcategory(subcategories);
+                        }
+                    }
+                }
+            }
+        }
+        // Sort the list.
+        List<AppDetails> list = new ArrayList<AppDetails>(
+                appDetailsHash.values());
+        Collections.sort(list, AppDetails.SMART_COMPARATOR);
+
+        for (Category category : mCategories)
+            category.assignAppsToCategory(list);
+
+        mWasDataReloaded = true;
+        return list;
+    }
+
+    /**
+     * Called when there is new data to deliver to the client. The super class
+     * will take care of delivering it; the implementation here just adds a
+     * little more logic.
+     */
+    @Override
+    public void deliverResult(List<AppDetails> apps) {
+        if (isReset()) {
+            apps = null;
+        }
+        mAppDetailsList = apps;
+
+        if (isStarted()) {
+            // If the Loader is currently started, we can immediately
+            // deliver its results.
+            super.deliverResult(apps);
+        }
+    }
+
+    /**
+     * Handles a request to start the Loader.
+     */
+    @Override
+    protected void onStartLoading() {
+        if (mAppDetailsList != null) {
+            // If we currently have a result available, deliver it
+            // immediately.
+            deliverResult(mAppDetailsList);
+        }
+
+        // Start watching for changes in the app data.
+        if (mPackageObserver == null) {
+            mPackageObserver = new PackageIntentReceiver(this);
+        }
+
+        if (takeContentChanged() || mAppDetailsList == null) {
+            // If the data has changed since the last time it was loaded
+            // or is not currently available, start a load.
+            forceLoad();
+        }
+    }
+
+    /**
+     * Handles a request to stop the Loader.
+     */
+    @Override
+    protected void onStopLoading() {
+        // Attempt to cancel the current load task if possible.
+        cancelLoad();
+    }
+
+    /**
+     * Handles a request to completely reset the Loader.
+     */
+    @Override
+    protected void onReset() {
+
+        // Ensure the loader is stopped
+        onStopLoading();
+
+        // Stop monitoring for changes.
+        if (mPackageObserver != null) {
+            getContext().unregisterReceiver(mPackageObserver);
+            mPackageObserver = null;
+        }
+    }
+
+    /**
+     * Gets AppDetails from mAppDetailsList for a given PackageName
+     * 
+     * @param packageName
+     *            PackageName for which to get AppDetails
+     * @return AppDetails for given PackageName
+     */
+    public static AppDetails getAppDetails(String packageName) {
+        if (packageName != null && mAppDetailsList != null) {
+            for (AppDetails appDetails : mAppDetailsList) {
+                if (packageName.equals(appDetails.getAppPackageName())) {
+                    return appDetails;
+                }
+            }
+        }
+        return null;
+    }
+
+    public static void setOnChangeListener(OnAppRemoveListener listener) {
+        mChangeListener = listener;
+    }
+
+    /**
+     * @return the mAppDetailsList
+     */
+    public static List<AppDetails> getAppDetailsList() {
+        return mAppDetailsList;
+    }
+
+    /**
+     * @return the mCategories
+     */
+    static public List<Category> getCategories() {
+        return mCategories;
+    }
+
+    public static List<Subcategory> getSubcategoriesOfMask(int subcategoriesMask) {
+        ArrayList<Subcategory> list = new ArrayList<Subcategory>();
+        for (Subcategory subcategory : mSubcategories) {
+            if ((subcategoriesMask & subcategory.getId()) > 0) {
+                list.add(subcategory);
+            }
+        }
+        return list;
+    }
+
+    public PackageManager getPm() {
+        return mPm;
+    }
+
+    public interface OnAppRemoveListener {
+        public void onPackageRemoved(String packageName);
+    }
+
+    /**
+     * Helper class to look for interesting changes to the installed apps so
+     * that the loader can be updated.
+     */
+    public static class PackageIntentReceiver extends BroadcastReceiver {
+        private final AppListLoader mLoader;
+
+        public PackageIntentReceiver(AppListLoader loader) {
+            mLoader = loader;
+            IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
+            filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+            filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
+            filter.addDataScheme("package");
+            mLoader.getContext().registerReceiver(this, filter);
+            // Register for events related to sdcard installation.
+            IntentFilter sdFilter = new IntentFilter();
+            sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
+            sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
+            mLoader.getContext().registerReceiver(this, sdFilter);
+        }
+
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent.getAction().equals(
+                    Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE)) {
+                mLoader.onPackagesAdded(intent
+                        .getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST));
+            } else if (intent.getAction().equals(
+                    Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE)) {
+                mLoader.onPackagesRemoved(intent
+                        .getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST));
+            } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED))
+                mLoader.onPackageRemoved(intent.getData()
+                        .getSchemeSpecificPart(), true);
+            else if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED))
+                mLoader.onPackageAdded(
+                        intent.getData().getSchemeSpecificPart(), true);
+            else if (intent.getAction().equals(Intent.ACTION_PACKAGE_CHANGED))
+                mLoader.onPackageChanged(intent.getData()
+                        .getSchemeSpecificPart());
+        }
+    }
+
+    public void onPackageRemoved(String packageName, boolean deliverResult) {
+        if (mChangeListener != null)
+            mChangeListener.onPackageRemoved(packageName);
+        for (AppDetails details : mAppDetailsList) {
+            if (details.getAppPackageName().equals(packageName)) {
+                mAppDetailsList.remove(details);
+                for (Category category : mCategories)
+                    category.removeAppFromList(details);
+                if (deliverResult)
+                    deliverResult(new ArrayList<AppDetails>(mAppDetailsList));
+                break;
+            }
+        }
+    }
+
+    public void onPackagesRemoved(String[] packageNames) {
+        for (String packageName : packageNames) {
+            onPackageRemoved(packageName, false);
+        }
+        deliverResult(new ArrayList<AppDetails>(mAppDetailsList));
+    }
+
+    public void onPackageChanged(String packageName) {
+        for (AppDetails details : mAppDetailsList) {
+            if (details.getAppPackageName().equals(packageName)) {
+                PackageInfo packageInfo = getInstalledAppDetails(packageName);
+                if (packageInfo == null)
+                    return;
+                details.setEnabled(packageInfo.applicationInfo.enabled);
+                deliverResult(new ArrayList<AppDetails>(mAppDetailsList));
+                break;
+            }
+        }
+    }
+
+    public void onPackageAdded(String packageName, boolean deliverResult) {
+        PackageInfo packageInfo = getInstalledAppDetails(packageName);
+        if (packageInfo == null)
+            return;
+        AppDetails newPackage = new AppDetails(this, packageInfo);
+
+        String[] requestedPermissions = packageInfo.requestedPermissions;
+        if (requestedPermissions != null && mSubcategories != null) {
+            for (String permissionName : requestedPermissions) {
+                Integer subcategories = mAllPermissionsHash.get(permissionName);
+                if (subcategories != null
+                        && getPm().checkPermission(permissionName,
+                                packageInfo.packageName) == PackageManager.PERMISSION_GRANTED) {
+                    newPackage.addSubcategory(subcategories);
+                }
+            }
+        }
+        mAppDetailsList.add(newPackage);
+
+        for (Category category : mCategories)
+            category.addApplicationToCategory(newPackage);
+        if (deliverResult)
+            deliverResult(new ArrayList<AppDetails>(mAppDetailsList));
+    }
+
+    public void onPackagesAdded(String[] packageNames) {
+        for (String packageStr : packageNames) {
+            onPackageAdded(packageStr, false);
+        }
+
+        deliverResult(new ArrayList<AppDetails>(mAppDetailsList));
+    }
+
+    public boolean wasDataReloaded() {
+        return mWasDataReloaded;
+    }
+
+    public void resetWasDataReloaded() {
+        mWasDataReloaded = false;
+    }
+}
\ No newline at end of file
diff --git a/src/com/samsung/srpol/parallax/ParallaxListView.java b/src/com/samsung/srpol/parallax/ParallaxListView.java
new file mode 100644 (file)
index 0000000..5fb5ebd
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+    The MIT License (MIT)
+    
+    Copyright (c) 2014 Nir Hartmann
+    
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+    
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+    
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE.
+ */
+package com.samsung.srpol.parallax;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ListView;
+
+public class ParallaxListView extends ListView {
+
+    private ParallaxListViewHelper helper;
+
+    public ParallaxListView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        init(context, attrs);
+    }
+
+    public ParallaxListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init(context, attrs);
+    }
+
+    protected void init(Context context, AttributeSet attrs) {
+        helper = new ParallaxListViewHelper(context, attrs, this);
+        super.setOnScrollListener(helper);
+    }
+
+    @Override
+    public void setOnScrollListener(OnScrollListener l) {
+        helper.setOnScrollListener(l);
+    }
+
+    public void addParallaxedHeaderView(View v) {
+        super.addHeaderView(v);
+        helper.addParallaxedHeaderView(v);
+    }
+
+    public void addParallaxedHeaderView(View v, Object data,
+            boolean isSelectable) {
+        super.addHeaderView(v, data, isSelectable);
+        helper.addParallaxedHeaderView(v, data, isSelectable);
+    }
+}
diff --git a/src/com/samsung/srpol/parallax/ParallaxListViewHelper.java b/src/com/samsung/srpol/parallax/ParallaxListViewHelper.java
new file mode 100644 (file)
index 0000000..9e1a055
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+    The MIT License (MIT)
+    
+    Copyright (c) 2014 Nir Hartmann
+    
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+    
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+    
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE.
+ */
+package com.samsung.srpol.parallax;
+
+import com.samsung.srpol.R;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.animation.TranslateAnimation;
+import android.widget.AbsListView;
+import android.widget.AbsListView.OnScrollListener;
+import android.widget.ListView;
+
+public class ParallaxListViewHelper implements OnScrollListener {
+
+    private static final float DEFAULT_ALPHA_FACTOR = -1F;
+    private static final float DEFAULT_PARALLAX_FACTOR = 1.9F;
+    private static final boolean DEFAULT_IS_CIRCULAR = false;
+    private float parallaxFactor = DEFAULT_PARALLAX_FACTOR;
+    private float alphaFactor = DEFAULT_ALPHA_FACTOR;
+    private ParallaxedView parallaxedView;
+    private boolean isCircular;
+    private OnScrollListener listener = null;
+    private ListView listView;
+
+    protected ParallaxListViewHelper(Context context, AttributeSet attrs,
+            ListView listView) {
+        init(context, attrs, listView);
+    }
+
+    protected void init(Context context, AttributeSet attrs, ListView listView) {
+        this.listView = listView;
+        TypedArray typeArray = context.obtainStyledAttributes(attrs,
+                R.styleable.ParallaxScroll);
+        this.parallaxFactor = typeArray.getFloat(
+                R.styleable.ParallaxScroll_parallax_factor,
+                DEFAULT_PARALLAX_FACTOR);
+        this.alphaFactor = typeArray.getFloat(
+                R.styleable.ParallaxScroll_alpha_factor, DEFAULT_ALPHA_FACTOR);
+        this.isCircular = typeArray.getBoolean(
+                R.styleable.ParallaxScroll_circular_parallax,
+                DEFAULT_IS_CIRCULAR);
+        typeArray.recycle();
+    }
+
+    protected void setOnScrollListener(OnScrollListener l) {
+        this.listener = l;
+    }
+
+    protected void addParallaxedHeaderView(View v) {
+        addParallaxedView(v);
+    }
+
+    protected void addParallaxedHeaderView(View v, Object data,
+            boolean isSelectable) {
+        addParallaxedView(v);
+    }
+
+    protected void addParallaxedView(View v) {
+        this.parallaxedView = new ListViewParallaxedItem(v);
+    }
+
+    protected void parallaxScroll() {
+        if (isCircular)
+            circularParallax();
+        else
+            headerParallax();
+    }
+
+    private void circularParallax() {
+        if (listView.getChildCount() > 0) {
+            int top = -listView.getChildAt(0).getTop();
+            if (top >= 0) {
+                fillParallaxedViews();
+                setFilters(top);
+            }
+        }
+    }
+
+    private void headerParallax() {
+        if (parallaxedView != null) {
+            if (listView.getChildCount() > 0) {
+                int top = -listView.getChildAt(0).getTop();
+                if (top >= 0) {
+                    setFilters(top);
+                }
+            }
+        }
+    }
+
+    private void setFilters(int top) {
+        parallaxedView.setOffset((float) top / parallaxFactor);
+        if (alphaFactor != DEFAULT_ALPHA_FACTOR) {
+            float alpha = (top <= 0) ? 1 : (100 / ((float) top * alphaFactor));
+            parallaxedView.setAlpha(alpha);
+        }
+        parallaxedView.animateNow();
+    }
+
+    private void fillParallaxedViews() {
+        if (parallaxedView == null
+                || parallaxedView.is(listView.getChildAt(0)) == false) {
+            if (parallaxedView != null) {
+                resetFilters();
+                parallaxedView.setView(listView.getChildAt(0));
+            } else {
+                parallaxedView = new ListViewParallaxedItem(
+                        listView.getChildAt(0));
+            }
+        }
+    }
+
+    private void resetFilters() {
+        parallaxedView.setOffset(0);
+        if (alphaFactor != DEFAULT_ALPHA_FACTOR)
+            parallaxedView.setAlpha(1F);
+        parallaxedView.animateNow();
+    }
+
+    @Override
+    public void onScroll(AbsListView view, int firstVisibleItem,
+            int visibleItemCount, int totalItemCount) {
+        parallaxScroll();
+        if (this.listener != null)
+            this.listener.onScroll(view, firstVisibleItem, visibleItemCount,
+                    totalItemCount);
+    }
+
+    @Override
+    public void onScrollStateChanged(AbsListView view, int scrollState) {
+        if (this.listener != null)
+            this.listener.onScrollStateChanged(view, scrollState);
+    }
+
+    protected class ListViewParallaxedItem extends ParallaxedView {
+
+        public ListViewParallaxedItem(View view) {
+            super(view);
+        }
+
+        @Override
+        protected void translatePreICS(View view, float offset) {
+            addAnimation(new TranslateAnimation(0, 0, offset, offset));
+        }
+    }
+}
diff --git a/src/com/samsung/srpol/parallax/ParallaxedView.java b/src/com/samsung/srpol/parallax/ParallaxedView.java
new file mode 100644 (file)
index 0000000..e41e3a1
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+    The MIT License (MIT)
+    
+    Copyright (c) 2014 Nir Hartmann
+    
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+    
+    The above copyright notice and this permission notice shall be included in all
+    copies or substantial portions of the Software.
+    
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+    SOFTWARE.
+ */
+package com.samsung.srpol.parallax;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import android.annotation.SuppressLint;
+import android.os.Build;
+import android.view.View;
+import android.view.animation.AlphaAnimation;
+import android.view.animation.Animation;
+import android.view.animation.AnimationSet;
+
+public abstract class ParallaxedView {
+    static public boolean isAPI11 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
+    protected WeakReference<View> view;
+    protected int lastOffset;
+    protected List<Animation> animations;
+
+    abstract protected void translatePreICS(View view, float offset);
+
+    public ParallaxedView(View view) {
+        this.lastOffset = 0;
+        this.animations = new ArrayList<Animation>();
+        this.view = new WeakReference<View>(view);
+    }
+
+    public boolean is(View v) {
+        return (v != null && view != null && view.get() != null && view.get()
+                .equals(v));
+    }
+
+    @SuppressLint("NewApi")
+    public void setOffset(float offset) {
+        View view = this.view.get();
+        if (view != null)
+            if (isAPI11) {
+                view.setTranslationY(offset);
+            } else {
+                translatePreICS(view, offset);
+            }
+    }
+
+    public void setAlpha(float alpha) {
+        View view = this.view.get();
+        if (view != null)
+            if (isAPI11) {
+                view.setAlpha(alpha);
+            } else {
+                alphaPreICS(view, alpha);
+            }
+    }
+
+    protected synchronized void addAnimation(Animation animation) {
+        animations.add(animation);
+    }
+
+    protected void alphaPreICS(View view, float alpha) {
+        addAnimation(new AlphaAnimation(alpha, alpha));
+    }
+
+    protected synchronized void animateNow() {
+        View view = this.view.get();
+        if (view != null) {
+            AnimationSet set = new AnimationSet(true);
+            for (Animation animation : animations)
+                if (animation != null)
+                    set.addAnimation(animation);
+            set.setDuration(0);
+            set.setFillAfter(true);
+            view.setAnimation(set);
+            set.start();
+            animations.clear();
+        }
+    }
+
+    public void setView(View view) {
+        this.view = new WeakReference<View>(view);
+    }
+
+    public View getView() {
+        return this.view.get();
+    }
+}
diff --git a/src/com/samsung/srpol/ui/AppInfoActivity.java b/src/com/samsung/srpol/ui/AppInfoActivity.java
new file mode 100644 (file)
index 0000000..c29ed30
--- /dev/null
@@ -0,0 +1,210 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui;
+
+import java.util.List;
+
+import com.nhaarman.listviewanimations.appearance.AnimationAdapter;
+import com.nhaarman.listviewanimations.appearance.simple.AlphaInAnimationAdapter;
+import com.samsung.srpol.R;
+import com.samsung.srpol.data.Subcategory;
+import com.samsung.srpol.loader.AppDetails;
+import com.samsung.srpol.loader.AppListLoader;
+import com.samsung.srpol.loader.AppListLoader.OnAppRemoveListener;
+import com.samsung.srpol.utils.Utils;
+
+import android.support.v7.app.ActionBarActivity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+public class AppInfoActivity extends ActionBarActivity implements OnAppRemoveListener {
+    public static final String APP_PACKAGE_NAME = "APP_PACKAGE_NAME";
+    
+    private AppDetails mAppDetails;
+    private String mPackageName = null;
+    private ThreatsArrayAdapter mAdapter;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_app_info);
+        Intent intent = getIntent();
+        if (intent != null) {
+            mPackageName = intent
+                    .getStringExtra(AppInfoActivity.APP_PACKAGE_NAME);
+        }
+        mAppDetails = AppListLoader.getAppDetails(mPackageName);
+        if(mAppDetails == null){
+            return;
+        }
+        ImageView imageView = (ImageView) findViewById(R.id.app_icon);
+        imageView.setImageDrawable(mAppDetails.getAppIcon());
+        TextView textView = (TextView) findViewById(R.id.app_name);
+        textView.setText(mAppDetails.getAppName());
+
+        grayoutText(textView);
+
+        ListView listView = (ListView) findViewById(R.id.threats_list);
+        mAdapter = new ThreatsArrayAdapter(getApplicationContext(),
+                AppListLoader.getSubcategoriesOfMask(mAppDetails
+                        .getSubcategoriesMask()));
+        AnimationAdapter adapter = new AlphaInAnimationAdapter(mAdapter);
+        adapter.setAbsListView(listView);
+        listView.setAdapter(adapter);
+
+        ImageButton uninstallButton = (ImageButton) findViewById(R.id.uninstall_button);
+        ImageButton moreInfoButton = (ImageButton) findViewById(R.id.more_info_button);
+        TextView systemAppTextView = (TextView) findViewById(R.id.system_app_text);
+        View activityLayout = findViewById(R.id.container);
+        if (mAppDetails.isSystemApp()) {
+            moreInfoButton.setVisibility(View.VISIBLE);
+            systemAppTextView.setVisibility(View.VISIBLE);
+            uninstallButton
+                    .setImageResource(R.drawable.app_info_settings_button);
+            uninstallButton.setContentDescription(getResources().getText(R.string.app_detail_settings_button));
+            activityLayout.setBackgroundResource(R.color.grayout_list_item_bg);
+        } else {
+            moreInfoButton.setVisibility(View.GONE);
+            systemAppTextView.setVisibility(View.GONE);
+            uninstallButton
+                    .setImageResource(R.drawable.app_info_uninstall_button);
+            uninstallButton.setContentDescription(getResources().getText(R.string.app_detail_uninstall_button));
+            activityLayout.setBackgroundResource(R.color.app_detail_bg);
+        }
+
+        uninstallButton.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                Utils.showInstalledAppDetails(getApplicationContext(), mPackageName);
+            }
+        });
+        moreInfoButton.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                Utils.startBrowser(getApplicationContext(), getResources().getString(R.string.app_info_more_info));
+            }
+        });
+        AppListLoader.setOnChangeListener(this);
+    }
+
+    @Override
+    protected void onResume() {
+        ImageView systemAppIcon = (ImageView) findViewById(R.id.list_system_app_icon);
+        if (mAppDetails.isSystemApp()) {
+            systemAppIcon.setVisibility(View.VISIBLE);
+            if (mAppDetails.isEnabled()) {
+                systemAppIcon.setImageDrawable(Utils.getmSystemIcon(this));
+            } else {
+                systemAppIcon.setImageDrawable(Utils
+                        .getmSystemIconDisable(this));
+            }
+        } else {
+            systemAppIcon.setVisibility(View.INVISIBLE);
+        }
+        super.onResume();
+    }
+
+    @Override
+    protected void onDestroy() {
+        AppListLoader.setOnChangeListener(null);
+        super.onDestroy();
+    }
+
+    class ThreatsArrayAdapter extends ArrayAdapter<Subcategory> {
+
+        public ThreatsArrayAdapter(Context context, List<Subcategory> resources) {
+            super(context, R.layout.threats_list_item, resources);
+        }
+
+        class ViewHolder {
+            public TextView textView;
+            public ImageView imageView;
+        }
+
+        @Override
+        public boolean isEnabled(int position) {
+            return false;
+        }
+        
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            ViewHolder holder;
+            if (convertView == null) {
+                convertView = getLayoutInflater().inflate(R.layout.threats_list_item,
+                        parent, false);
+                holder = new ViewHolder();
+                holder.imageView = (ImageView) convertView
+                        .findViewById(R.id.threat_icon);
+                holder.textView = (TextView) convertView
+                        .findViewById(R.id.threat_text);
+                convertView.setTag(holder);
+            } else {
+                holder = (ViewHolder) convertView.getTag();
+            }
+            Subcategory subgroupContainer = getItem(position);
+            if (subgroupContainer != null) {
+                holder.imageView
+                        .setImageDrawable(subgroupContainer.getDarkIcon());
+                holder.textView.setText(subgroupContainer.getDescription());
+            }
+            return convertView;
+        }
+    }
+
+    private void grayoutText(TextView textView){
+     // disabling and enabling apps in system application manager is
+        // available since API 4.0
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+            if (mAppDetails.isEnabled()) {
+                textView.setTextColor(getResources().getColor(
+                        android.R.color.black));
+            } else {
+                textView.setTextColor(getResources().getColor(
+                        R.color.disabled_app_name));
+            }
+        }
+    }
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        return true;
+    }
+
+    @Override
+    public void onPackageRemoved(String packageName) {
+        if (mPackageName.equals(packageName)) {
+            finish();
+        }
+    }
+
+}
diff --git a/src/com/samsung/srpol/ui/LicenseActivity.java b/src/com/samsung/srpol/ui/LicenseActivity.java
new file mode 100644 (file)
index 0000000..a69f7b2
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui;
+
+import com.samsung.srpol.R;
+import com.samsung.srpol.utils.Utils;
+
+import android.graphics.Paint;
+import android.os.Bundle;
+import android.support.v7.app.ActionBarActivity;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+public class LicenseActivity extends ActionBarActivity {
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_license);
+
+        TextView descriptionTextLink = (TextView) findViewById(R.id.license_link);
+        descriptionTextLink.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
+        descriptionTextLink.setOnClickListener(new OnClickListener() {
+            
+            @Override
+            public void onClick(View v) {
+                Utils.startBrowser(LicenseActivity.this, getString(R.string.license_link));
+            }
+        });
+        
+        ImageButton backBtn = (ImageButton) findViewById(R.id.back_button);
+        backBtn.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View arg0) {
+                finish();
+            }
+        });
+    }
+    
+}
diff --git a/src/com/samsung/srpol/ui/MainActivity.java b/src/com/samsung/srpol/ui/MainActivity.java
new file mode 100644 (file)
index 0000000..1d311c9
--- /dev/null
@@ -0,0 +1,352 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui;
+
+import java.util.List;
+
+import com.samsung.srpol.R;
+import com.samsung.srpol.loader.AppDetails;
+import com.samsung.srpol.loader.AppListLoader;
+import com.samsung.srpol.ui.drawer.MenuFragment;
+import com.samsung.srpol.ui.drawer.NavigationDrawerItemListener;
+import com.samsung.srpol.ui.tabpager.PageAdapter;
+
+import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.ActionBar;
+import android.support.v4.app.ActionBarDrawerToggle;
+import android.support.v4.app.LoaderManager;
+import android.support.v4.content.Loader;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnDismissListener;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.os.Handler;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.support.v4.view.GravityCompat;
+import android.support.v4.view.PagerTabStrip;
+import android.support.v4.view.ViewPager;
+import android.support.v4.widget.DrawerLayout;
+
+public class MainActivity extends ActionBarActivity implements
+        LoaderManager.LoaderCallbacks<List<AppDetails>> {
+    public static final String TAG = "MainActivity";
+
+    private static final String STATE_WELCOME_DIALOG_IS_OPEN = "welcome_dialog_is_open";
+    private static final String STATE_WELCOME_DIALOG_OPENED_FROM_MENU = "welcome_dialog_opened_from_menu";
+    private static final String STATE_DRAWER_MENU_IS_OPEN = "state_drawer_menu_is_open";
+
+    private MenuFragment mMenuFragment;
+
+    private WelcomeDialog mWelcomeDialog;
+    private ViewPager mViewPager;
+    private PageAdapter mFramePagerAdapter;
+    private boolean mDrawerOpenState = false;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+
+        if (savedInstanceState != null) {
+            boolean isWelcomeDialogOpen = savedInstanceState.getBoolean(
+                    STATE_WELCOME_DIALOG_IS_OPEN, false);
+            if (isWelcomeDialogOpen) {
+                boolean isOpenedFromMenu = savedInstanceState.getBoolean(
+                        STATE_WELCOME_DIALOG_OPENED_FROM_MENU, false);
+                showWelcomeDialog(isOpenedFromMenu);
+            }
+            mDrawerOpenState = savedInstanceState.getBoolean(STATE_DRAWER_MENU_IS_OPEN, false);
+        } else {
+            showWelcomeDialog(false);
+        }
+
+        getSupportLoaderManager().initLoader(0, null, this);
+
+        // if Loader was created then we have all data to create
+        // NavigationDrawer otherwise wait for loader to be created and then
+        // create NavigationDrawer
+        if (getSupportLoaderManager().getLoader(0) != null) {
+            initNavigationDrawer();
+        }
+
+        mFramePagerAdapter = new PageAdapter(getSupportFragmentManager(), getApplicationContext());
+        mViewPager = (ViewPager) findViewById(R.id.myviewpager);
+        mViewPager.setAdapter(mFramePagerAdapter);
+
+        PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.titlestrip);
+        pagerTabStrip.setDrawFullUnderline(true);
+        pagerTabStrip.setTabIndicatorColor(getResources().getColor(R.color.tab_underline_color));
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (mWelcomeDialog != null) {
+            outState.putBoolean(STATE_WELCOME_DIALOG_IS_OPEN,
+                    mWelcomeDialog.isShowing());
+            outState.putBoolean(STATE_WELCOME_DIALOG_OPENED_FROM_MENU,
+                    mWelcomeDialog.ismOpenedFromMenu());
+        }
+        if (isDrawerOpen() || (mDrawerOpenState && mDrawerLayout == null)) {
+            outState.putBoolean(STATE_DRAWER_MENU_IS_OPEN, true);
+        }
+    }
+
+    protected void onDestroy() {
+        if (mWelcomeDialog != null) {
+            if (mWelcomeDialog.isShowing()) {
+                mWelcomeDialog.dismiss();
+            }
+        }
+        super.onDestroy();
+    }
+
+    public void restoreActionBar() {
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+        actionBar.setDisplayShowTitleEnabled(true);
+    }
+
+    @Override
+    protected boolean onPrepareOptionsPanel(View view, Menu menu) {
+        SharedPreferences sp = PreferenceManager
+                .getDefaultSharedPreferences(this);
+        boolean showSystemApp = sp.getBoolean(
+                AppListLoader.PREF_INCLUDE_SYSTEM_APPS,
+                true);
+        MenuItem menuItemSystem = menu.findItem(R.id.action_toggle_system_visibility);
+        if (menuItemSystem != null) {
+            if (showSystemApp) {
+                menuItemSystem.setTitle(R.string.hide_system_visibility);
+            } else {
+                menuItemSystem.setTitle(R.string.show_system_visibility);
+            }
+        }
+        return super.onPrepareOptionsPanel(view, menu);
+    }
+    
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.main, menu);
+        restoreActionBar();
+        return true;
+    }
+
+    @Override
+    public void onBackPressed() {
+        if (isDrawerOpen()) {
+            closeDrawer();
+        } else {
+            super.onBackPressed();
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (mActionBarDrawerToggle != null
+                && mActionBarDrawerToggle.onOptionsItemSelected(item))
+            return true;
+        int id = item.getItemId();
+        switch (id) {
+            case R.id.action_about:
+                showWelcomeDialog(true);
+                return true;
+            case R.id.action_licence:
+                showLicense();
+                return true;
+            case R.id.action_toggle_system_visibility:
+                toggleSharedPrefences(AppListLoader.PREF_INCLUDE_SYSTEM_APPS);
+                refreshAfterChanges();
+                return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    public void toggleSharedPrefences(String preferenceName) {
+        SharedPreferences sp = PreferenceManager
+                .getDefaultSharedPreferences(this);
+        boolean actualValue = sp.getBoolean(preferenceName, true);
+        sp.edit().putBoolean(preferenceName, !actualValue).commit();
+    }
+
+    public void refreshAfterChanges() {
+        supportInvalidateOptionsMenu();
+        if (mFramePagerAdapter != null) {
+            mFramePagerAdapter.refreshAdapterNotify();
+            mFramePagerAdapter.notifyDataSetChanged();
+        }
+        if (mMenuFragment != null) {
+            mMenuFragment.notifyDataSetChanged();
+        }
+    }
+
+    @Override
+    public Loader<List<AppDetails>> onCreateLoader(int id, Bundle args) {
+        AppListLoader loader = new AppListLoader(this.getApplicationContext());
+        initNavigationDrawer();
+
+        return loader;
+    }
+
+    @Override
+    public void onLoadFinished(Loader<List<AppDetails>> loader,
+            List<AppDetails> data) {
+        Log.d(TAG, "onLoadFinished");
+
+        AppListLoader appLoader = (AppListLoader) loader;
+        if (appLoader.wasDataReloaded()) {
+            appLoader.resetWasDataReloaded();
+            mViewPager.setOffscreenPageLimit(AppListLoader.getCategories().size());
+            mFramePagerAdapter.refreshPages();
+        } else {
+            mFramePagerAdapter.refreshAdapterNotify();
+        }
+        if (mWelcomeDialog != null && mWelcomeDialog.isShowing()) {
+            mWelcomeDialog.loadingDone();
+        }
+        if (mMenuFragment != null) {
+            mMenuFragment.notifyDataSetChanged();
+        }
+    }
+
+    public void onLoaderReset(Loader<List<AppDetails>> arg0) {
+        mFramePagerAdapter.refreshAdapterNotify();
+    }
+
+    private void showWelcomeDialog(boolean fromMenu) {
+        Log.d(TAG, "showWelcomeActivity flag: " + fromMenu);
+        if (mWelcomeDialog == null) {
+            mWelcomeDialog = new WelcomeDialog(this, fromMenu);
+        }
+        if (!mWelcomeDialog.isShowing()) {
+            mWelcomeDialog.show(fromMenu);
+        }
+        if (!fromMenu) {
+            mWelcomeDialog.setOnDismissListener(new OnDismissListener() {
+
+                @Override
+                public void onDismiss(DialogInterface dialog) {
+                    openDrawerAnimate();
+                }
+            });
+        }
+    }
+
+    private void showLicense() {
+        Intent intent = new Intent(this, LicenseActivity.class);
+        startActivity(intent);
+    }
+
+    private DrawerLayout mDrawerLayout;
+    private View mFragmentContainerView;
+    private ActionBarDrawerToggle mActionBarDrawerToggle;
+
+    private void initNavigationDrawer() {
+        mMenuFragment = (MenuFragment) getSupportFragmentManager()
+                .findFragmentById(R.id.menu_container);
+        mMenuFragment.setDrawerItemListener(mDrawerItemListener);
+        mFragmentContainerView = findViewById(R.id.menu_container);
+        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
+        setUp();
+        mMenuFragment.refresh();
+    }
+    
+    private NavigationDrawerItemListener mDrawerItemListener = new NavigationDrawerItemListener() {
+
+        public void onNavigationDrawerItemSelected(int position) {
+            if (mViewPager != null) {
+                mViewPager.setCurrentItem(position, true);
+                closeDrawer();
+            }
+        }
+    };
+
+    public void closeDrawer() {
+        if(mDrawerLayout != null){
+            mDrawerLayout.closeDrawer(Gravity.LEFT);
+            mDrawerOpenState=false;
+        }
+    }
+    
+    public boolean isDrawerOpen() {
+        return mDrawerLayout != null
+                && mDrawerLayout.isDrawerOpen(mFragmentContainerView);
+    }
+    
+    public void setUp() {
+        if (mDrawerLayout == null)
+            return;
+        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
+                GravityCompat.START);
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setDisplayHomeAsUpEnabled(true);
+        actionBar.setHomeButtonEnabled(true);
+
+        mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
+                R.drawable.ic_drawer, R.string.navigation_drawer_open,
+                R.string.navigation_drawer_close) {
+            @Override
+            public void onDrawerClosed(View drawerView) {
+                super.onDrawerClosed(drawerView);
+                supportInvalidateOptionsMenu();
+            }
+
+            @Override
+            public void onDrawerOpened(View drawerView) {
+                super.onDrawerOpened(drawerView);
+                supportInvalidateOptionsMenu(); 
+            }
+        };
+        mDrawerLayout.post(new Runnable() {
+            @Override
+            public void run() {
+                mActionBarDrawerToggle.syncState();
+            }
+        });
+        if (mDrawerOpenState && !isDrawerOpen()) {
+            mDrawerLayout.openDrawer(Gravity.LEFT);
+        }
+        mDrawerLayout.setDrawerListener(mActionBarDrawerToggle);
+    }
+
+    public void openDrawerAnimate() {
+        new Handler().post(new Runnable() {
+
+            @Override
+            public void run() {
+                if (mDrawerLayout != null) {
+                    mDrawerLayout.openDrawer(Gravity.LEFT);
+                    mDrawerOpenState = true;
+                }
+            }
+        });
+
+        if (mWelcomeDialog != null) {
+            mWelcomeDialog.setOnDismissListener(null);
+        }
+    }
+}
diff --git a/src/com/samsung/srpol/ui/PopupActivity.java b/src/com/samsung/srpol/ui/PopupActivity.java
new file mode 100644 (file)
index 0000000..c7e9849
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui;
+
+import java.util.List;
+
+import com.nhaarman.listviewanimations.appearance.AnimationAdapter;
+import com.nhaarman.listviewanimations.appearance.simple.AlphaInAnimationAdapter;
+import com.samsung.srpol.R;
+import com.samsung.srpol.data.Category;
+import com.samsung.srpol.data.Subcategory;
+import com.samsung.srpol.loader.AppListLoader;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v7.app.ActionBarActivity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.View.OnClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+public class PopupActivity extends ActionBarActivity {
+
+    public static final String POPUP_CATEGORY = "POPUP_CATEGORY";
+
+    private Category mCategory;
+    private ThreatsAdapter mAdapter;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_popup);
+        int categotyId = 0;
+        Intent intent = getIntent();
+        if (intent != null) {
+            categotyId = intent.getIntExtra(POPUP_CATEGORY, -1);
+        }
+
+        TextView header = (TextView) findViewById(R.id.header_text);
+        List<Category> containerList = AppListLoader.getCategories();
+        if (containerList != null && categotyId >= 0) {
+            mCategory = containerList.get(categotyId);
+            header.setText(getString(R.string.apps_that)
+                    + mCategory.getHeader());
+        }
+
+        ListView listview = (ListView) findViewById(R.id.threats_list);
+        mAdapter = new ThreatsAdapter(this);
+        for (Subcategory subCat : mCategory.getSubCategories())
+            mAdapter.add(subCat);
+        AnimationAdapter adapter = new AlphaInAnimationAdapter(mAdapter);
+        adapter.setAbsListView(listview);
+        listview.setAdapter(adapter);
+
+        ImageButton back = (ImageButton) findViewById(R.id.back_button);
+        back.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View arg0) {
+                finish();
+            }
+        });
+
+        ImageButton more = (ImageButton) findViewById(R.id.moreinfo_button);
+        more.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(Intent.ACTION_VIEW, Uri
+                        .parse(mCategory.getLink()));
+                startActivity(intent);
+            }
+        });
+    }
+
+    private class ThreatsAdapter extends ArrayAdapter<Subcategory> {
+
+        private class ViewHolder {
+            ImageView icon;
+            TextView description;
+        }
+
+        public ThreatsAdapter(Context context) {
+            super(context, R.layout.threats_list_item);
+        }
+
+        @Override
+        public boolean isEnabled(int position) {
+            return false;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            ViewHolder holder;
+            if (convertView == null) {
+                LayoutInflater inflater = getLayoutInflater();
+                convertView = inflater.inflate(R.layout.threats_list_item,
+                        parent, false);
+                holder = new ViewHolder();
+                holder.icon = (ImageView) convertView
+                        .findViewById(R.id.threat_icon);
+                holder.description = (TextView) convertView
+                        .findViewById(R.id.threat_text);
+                convertView.setTag(holder);
+            } else {
+                holder = (ViewHolder) convertView.getTag();
+            }
+
+            Subcategory item = getItem(position);
+
+            holder.icon.setImageDrawable(item.getIconDrawable());
+            holder.description.setText(item.getDescription());
+            holder.description.setTextColor(getResources().getColor(
+                    android.R.color.white));
+
+            return convertView;
+        }
+    }
+
+}
diff --git a/src/com/samsung/srpol/ui/WelcomeDialog.java b/src/com/samsung/srpol/ui/WelcomeDialog.java
new file mode 100644 (file)
index 0000000..2cd1659
--- /dev/null
@@ -0,0 +1,174 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui;
+
+import java.util.Timer;
+import java.util.TimerTask;
+import com.samsung.srpol.R;
+import com.samsung.srpol.utils.Utils;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Paint;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+public class WelcomeDialog extends Dialog implements android.view.View.OnClickListener{
+    private boolean isFirstTime;
+    private ImageButton mOkButton;
+    private TextView mDescriptionTextLink;
+    private ImageView mNpLogo, mSamsungLogo, mGovLogo;
+    private ProgressBar mProgressBar;
+    private Context mContext;
+    private boolean attachedToWindow = false;
+    private boolean mCanBeClosed;
+    private boolean mOpenedFromMenu = false;
+
+    public WelcomeDialog(Context context, boolean openedFromMenu) {
+        super(context, R.style.WelcomeDialog);
+        mContext = context;
+        mOpenedFromMenu = openedFromMenu;
+        setContentView(R.layout.welcome_dialog);
+
+        mOkButton = (ImageButton) this.findViewById(R.id.button);
+        mDescriptionTextLink = (TextView) this.findViewById(R.id.welcome_description_link);
+        mDescriptionTextLink.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
+        mProgressBar = (ProgressBar) this.findViewById(R.id.progressBar);
+        mNpLogo = (ImageView) findViewById(R.id.fondation_logo);
+        mSamsungLogo = (ImageView) findViewById(R.id.samsung_logo);
+        mGovLogo = (ImageView) findViewById(R.id.gov_logo);
+        TextView versionName = (TextView) findViewById(R.id.app_version);
+        versionName.setText(Utils.getAppVersionCode(context));
+        mOkButton.setOnClickListener(this);
+        mDescriptionTextLink.setOnClickListener(this);
+        mNpLogo.setOnClickListener(this);
+        mSamsungLogo.setOnClickListener(this);
+        mGovLogo.setOnClickListener(this);
+
+        isFirstTime = Utils.isFirstRun(this.getContext());
+
+        mCanBeClosed = false;
+        
+        if (!isFirstTime && !mOpenedFromMenu) {
+            new Timer().schedule(new TimerTask() {
+                
+                @Override
+                public void run() {
+                    synchronized (WelcomeDialog.this) {
+                        if (mCanBeClosed)
+                            WelcomeDialog.this.dismissDialog();
+                        else
+                            mCanBeClosed = true;
+                    }
+                }
+            }, 2000);
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see android.app.Dialog#onBackPressed()
+     */
+    @Override
+    public void onBackPressed() {
+        if(mOkButton.getVisibility() == View.VISIBLE){
+            super.onBackPressed();
+        }
+    }
+
+
+    @Override
+    public void onClick(View v) {
+        if(v == mOkButton){
+            this.dismissDialog();
+        } else if(v == mDescriptionTextLink){
+            Utils.startBrowser(mContext, mContext.getString(R.string.app_info_more_info));
+        } else if(v == mNpLogo){
+            Utils.startBrowser(mContext, mContext.getString(R.string.fond_site));
+        } else if(v == mSamsungLogo){
+            Utils.startBrowser(mContext, mContext.getString(R.string.samsung_site));
+        } else if(v == mGovLogo){
+            Utils.startBrowser(mContext, mContext.getString(R.string.gov_site));
+        }
+    }
+    /* (non-Javadoc)
+     * @see android.app.Dialog#onAttachedToWindow()
+     */
+    @Override
+    public void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        attachedToWindow = true;
+    }
+
+
+    /* (non-Javadoc)
+     * @see android.app.Dialog#onDetachedFromWindow()
+     */
+    @Override
+    public void onDetachedFromWindow() {
+        attachedToWindow = false;
+        super.onDetachedFromWindow();
+    }
+
+    public void loadingDone() {
+        if (mOpenedFromMenu) {
+            return;
+        }
+        if (isFirstTime) {
+            mProgressBar.setVisibility(View.GONE);
+            mOkButton.setVisibility(View.VISIBLE);
+        } else {
+            synchronized (this) {
+                if (mCanBeClosed) {
+                    dismissDialog();
+                }
+                mCanBeClosed = true;
+            }
+        }
+    }
+
+    private void dismissDialog(){
+        if(attachedToWindow){
+            this.dismiss();
+        }
+    }
+
+    /**
+     * @return the mOpenedFromMenu
+     */
+    public boolean ismOpenedFromMenu() {
+        return mOpenedFromMenu;
+    }
+
+    public void show(boolean openedFromMenu) {
+        mOpenedFromMenu = openedFromMenu;
+        if (openedFromMenu) {
+            mOkButton.setVisibility(View.VISIBLE);
+            mProgressBar.setVisibility(View.GONE);
+        } else {
+            mProgressBar.setVisibility(View.VISIBLE);
+            mOkButton.setVisibility(View.GONE);
+        }
+        this.show();
+    }
+}
\ No newline at end of file
diff --git a/src/com/samsung/srpol/ui/drawer/CategoryArrayAdapter.java b/src/com/samsung/srpol/ui/drawer/CategoryArrayAdapter.java
new file mode 100644 (file)
index 0000000..b95febf
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui.drawer;
+
+import java.util.Collection;
+
+import com.samsung.srpol.R;
+import com.samsung.srpol.data.Category;
+
+import android.content.Context;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+public class CategoryArrayAdapter extends ArrayAdapter<Category> {
+    private final Context mContext;
+    private String mTextPrefix ;
+    private String mCountTextPrefix;
+    private int mSpanTextColor;
+
+    private static class ViewHolder {
+        TextView textView1;
+        TextView textView2;
+        TextView textView3;
+        ImageView imageView;
+    }
+    
+    public CategoryArrayAdapter(Context context) {
+        super(context, R.layout.drawer_list_item);
+        mTextPrefix = context.getResources().getString(R.string.drawer_header_text_prefix);
+        mCountTextPrefix = context.getResources().getString(R.string.items_string_quantity);
+        mSpanTextColor = context.getResources().getColor(R.color.text_menu);
+        mContext = context;
+    }
+
+    @Override
+    public void addAll(Collection<? extends Category> collection) {
+        for (Category category : collection) {
+            super.add(category);
+        }
+    }
+    
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder holder = null;
+        if (convertView == null) {
+            LayoutInflater inflater = (LayoutInflater) mContext
+                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            convertView = inflater.inflate(R.layout.drawer_list_item, parent,
+                    false);
+            holder = new ViewHolder();
+            holder.textView1 = (TextView) convertView.findViewById(R.id.text1);
+            holder.textView2 = (TextView) convertView.findViewById(R.id.text2);
+            holder.textView3 = (TextView) convertView.findViewById(R.id.text3);
+            holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
+
+            convertView.setTag(holder);
+        } else {
+            holder = (ViewHolder) convertView.getTag();
+        }
+
+        Category category = getItem(position);
+        if (category.getIconRes() > 0)
+            holder.imageView.setImageResource(category.getIconRes());
+        holder.textView1.setText(mTextPrefix + category.getHeader());
+        holder.textView2.setText(category.getShortDescription());
+        holder.textView3.setText(createSpannableCountText(category.getCurrentlyVisible()));
+        return convertView;
+    }
+
+    private Spannable createSpannableCountText(int count){
+        
+        Spannable spannable = new SpannableString(mCountTextPrefix + count);
+        spannable.setSpan(new ForegroundColorSpan(mSpanTextColor),mCountTextPrefix.length(), spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+        return spannable;
+    }
+}
diff --git a/src/com/samsung/srpol/ui/drawer/MenuFragment.java b/src/com/samsung/srpol/ui/drawer/MenuFragment.java
new file mode 100644 (file)
index 0000000..42d7c6e
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui.drawer;
+
+import com.samsung.srpol.R;
+import com.samsung.srpol.loader.AppListLoader;
+
+import android.support.v4.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ListView;
+
+
+public class MenuFragment extends Fragment {
+
+    private static final String SAVED_POSITION = "saved_position";
+
+    private NavigationDrawerItemListener mDrawerItemListener;
+    
+    private ListView mMenuListView;
+    private CategoryArrayAdapter mAdapter;
+
+    private int mSelectedPosition = 0;
+
+    public MenuFragment() {
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (savedInstanceState != null) {
+            mSelectedPosition = savedInstanceState
+                    .getInt(SAVED_POSITION);
+            selectItem(mSelectedPosition);
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        setHasOptionsMenu(true);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        View mRootView = (View) inflater.inflate(
+                R.layout.fragment_navigation_drawer, container, false);
+        mMenuListView = (ListView) mRootView
+                .findViewById(R.id.fragment_listView);
+        mMenuListView
+                .setOnItemClickListener(new AdapterView.OnItemClickListener() {
+                    @Override
+                    public void onItemClick(AdapterView<?> parent, View view,
+                            int position, long id) {
+                        selectItem(position);
+                    }
+                });
+        mAdapter = new CategoryArrayAdapter(getActivity().getApplicationContext());
+        mMenuListView.setAdapter(mAdapter);
+
+        mMenuListView.setItemChecked(mSelectedPosition, true);
+        return mRootView;
+    }
+
+    public void refresh() {
+        if (mAdapter != null) {
+            mAdapter.clear();
+            mAdapter.addAll(AppListLoader.getCategories());
+            mAdapter.notifyDataSetChanged();
+        }
+    }
+
+
+    private void selectItem(int position) {
+        mSelectedPosition = position;
+        if (mMenuListView != null) {
+            mMenuListView.setItemChecked(position, true);
+        }
+
+        if (mDrawerItemListener != null) {
+            mDrawerItemListener.onNavigationDrawerItemSelected(position);
+        }
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+        mDrawerItemListener = null;
+    }
+
+    public void setDrawerItemListener(NavigationDrawerItemListener drawerItemListener) {
+        mDrawerItemListener = drawerItemListener;
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putInt(SAVED_POSITION, mSelectedPosition);
+    }
+
+    public void notifyDataSetChanged(){
+        if(mAdapter != null){
+            mAdapter.notifyDataSetChanged();
+        }
+    }
+}
diff --git a/src/com/samsung/srpol/ui/drawer/NavigationDrawerItemListener.java b/src/com/samsung/srpol/ui/drawer/NavigationDrawerItemListener.java
new file mode 100644 (file)
index 0000000..495c51b
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui.drawer;
+
+public interface NavigationDrawerItemListener {
+
+    void onNavigationDrawerItemSelected(int position);
+
+}
diff --git a/src/com/samsung/srpol/ui/tabpager/AppListArrayAdapter.java b/src/com/samsung/srpol/ui/tabpager/AppListArrayAdapter.java
new file mode 100644 (file)
index 0000000..92ca1c1
--- /dev/null
@@ -0,0 +1,195 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui.tabpager;
+
+import java.util.ArrayList;
+
+import com.samsung.srpol.R;
+import com.samsung.srpol.data.Category;
+import com.samsung.srpol.data.Subcategory;
+import com.samsung.srpol.loader.AppDetails;
+import com.samsung.srpol.loader.AppListLoader;
+import com.samsung.srpol.utils.Utils;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+import android.preference.PreferenceManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+public class AppListArrayAdapter extends ArrayAdapter<AppDetails> {
+
+    private static SharedPreferences mSp;
+    
+    private final Context mContext;
+    private final Category mCategory;
+    private ArrayList<AppDetails> mDisplayedList;
+
+    private static class ViewHolder {
+        public TextView appName;
+        public TextView appPackageName;
+        public ImageView appIcon;
+        public ImageView systemAppIcon;
+        public LinearLayout groupIcons;
+        public ImageView[] groupIconsView;
+    }
+
+    public AppListArrayAdapter(Context context, Category category) {
+        super(context, R.layout.app_list_item_view);
+        mContext = context;
+        mCategory = category;
+        mDisplayedList = new ArrayList<AppDetails>();
+        if (mSp == null)
+            mSp = PreferenceManager.getDefaultSharedPreferences(mContext);
+        refreshVisibleList();
+    }
+
+    private void refreshVisibleList() {
+        boolean includeSystemApps = mSp.getBoolean(
+                AppListLoader.PREF_INCLUDE_SYSTEM_APPS, true);
+        
+        mDisplayedList.clear();
+        for (AppDetails app : mCategory.getRelatedApps()) {
+            if (isVisible(app, includeSystemApps))
+                mDisplayedList.add(app);
+        }
+        mCategory.updateVisibleCount(mDisplayedList.size());
+    }
+
+    @Override
+    public void notifyDataSetChanged() {
+        refreshVisibleList();
+        super.notifyDataSetChanged();
+    }
+    
+    @Override
+    public AppDetails getItem(int position) {
+        return mDisplayedList.get(position);
+    }
+    
+    @Override
+    public int getCount() {
+        return mDisplayedList.size();
+    }
+    
+    private boolean isVisible(AppDetails item, boolean includeSystemApps) {
+
+        return !item.isSystemApp() 
+                || (includeSystemApps && item.isSystemApp());
+    }
+    
+    @SuppressWarnings("deprecation")
+    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder holder;
+        if (convertView == null) {
+            LayoutInflater inflater = (LayoutInflater) mContext
+                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            convertView = inflater.inflate(R.layout.app_list_item_view, parent,
+                    false);
+            holder = new ViewHolder();
+            holder.appName = (TextView) convertView
+                    .findViewById(R.id.list_app_name);
+            holder.appPackageName = (TextView) convertView
+                    .findViewById(R.id.list_app_package);
+            holder.appIcon = (ImageView) convertView
+                    .findViewById(R.id.list_app_icon);
+            holder.systemAppIcon = (ImageView) convertView
+                    .findViewById(R.id.list_system_app_icon);
+            holder.groupIcons = (LinearLayout) convertView
+                    .findViewById(R.id.app_list_group_icons);
+            
+            int i = 0;
+            holder.groupIconsView = new ImageView[mCategory.getSubCategories().size()];
+            for (Subcategory category : mCategory.getSubCategories()){
+                ImageView icon = new ImageView(mContext);
+                icon.setImageDrawable(category.getDarkIcon());
+                holder.groupIconsView[i++] = icon;
+                holder.groupIcons.addView(icon);
+            }
+            convertView.setTag(holder);
+        } else
+            holder = (ViewHolder) convertView.getTag();
+
+        AppDetails details = getItem(position);
+        holder.appName.setText(details.getAppName());
+        holder.appPackageName.setText(details.getAppPackageName());
+        holder.appIcon.setImageDrawable(details.getAppIcon());
+
+        // disabling and enabling apps in system application manager is available since API 4.0
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+            if (details.isEnabled()) {
+                holder.appName.setTextColor(mContext.getResources().getColor(android.R.color.black));
+            } else {
+                holder.appName.setTextColor(mContext.getResources().getColor(R.color.disabled_app_name));
+            }
+        }
+        if(details.isSystemApp()){
+            holder.systemAppIcon.setVisibility(View.VISIBLE);
+            if(details.isEnabled()){
+                holder.systemAppIcon.setImageDrawable(Utils.getmSystemIcon(mContext));
+            } else {
+                holder.systemAppIcon.setImageDrawable(Utils.getmSystemIconDisable(mContext));
+            }
+        } else {
+            holder.systemAppIcon.setVisibility(View.INVISIBLE);
+        }
+
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
+            convertView.setBackgroundDrawable(mContext
+                    .getResources()
+                    .getDrawable(
+                            details.isSystemApp() ? R.color.grayout_list_item_bg
+                                    : android.R.color.white));
+        else {
+            convertView.setBackground(mContext
+                    .getResources()
+                    .getDrawable(
+                            details.isSystemApp() ? R.color.grayout_list_item_bg
+                                    : android.R.color.white));
+        }
+        for (int i = 0; i < mCategory.getSubCategories().size(); ++i) {
+            if (details.isInSubcategory(mCategory.getSubCategories().get(i).getId())) {
+                // disabling and enabling apps in system application manager is available since API 4.0
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+                    if (details.isEnabled())
+                        holder.groupIconsView[i].setImageDrawable(mCategory.getSubCategories().get(i).getDarkIcon());
+                    else
+                        holder.groupIconsView[i].setImageDrawable(mCategory.getSubCategories().get(i).getDisabledIcon());
+                }
+                holder.groupIconsView[i].setVisibility(View.VISIBLE);
+            } else {
+                holder.groupIconsView[i].setVisibility(View.GONE);
+            }
+        }
+        return convertView;
+    }
+    
+}
diff --git a/src/com/samsung/srpol/ui/tabpager/PageAdapter.java b/src/com/samsung/srpol/ui/tabpager/PageAdapter.java
new file mode 100644 (file)
index 0000000..df90409
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui.tabpager;
+
+import java.util.List;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+
+import com.samsung.srpol.data.Category;
+import com.samsung.srpol.loader.AppListLoader;
+
+public class PageAdapter extends FragmentPagerAdapter {
+
+    private static List<Category> mCategories;
+    private static PageFragment[] mCreatedFragments = null;
+    
+    public PageAdapter(FragmentManager fm, Context context) {
+        super(fm);
+    }
+    
+    public void refreshPages() {
+        if (mCategories == null) {
+            mCategories = AppListLoader.getCategories();
+            notifyDataSetChanged();
+        } else {
+            refreshAdapterNotify();
+        }
+    }
+
+    public void refreshAdapterNotify() {
+        for (PageFragment fragment : mCreatedFragments) {
+            if (fragment != null)
+                fragment.notifyDataSetChanged();
+        }
+    }
+    @Override
+    public Fragment getItem(int position) {
+        if (mCreatedFragments == null)
+            mCreatedFragments = new PageFragment[mCategories.size()];
+        PageFragment f = mCreatedFragments[position];
+        if (f == null) {
+            f = new PageFragment();
+            
+            Bundle args = new Bundle();
+            args.putInt("position", position);
+            f.setArguments(args);
+            mCreatedFragments[position] = f;
+        }
+        return f;
+    }
+
+    @Override
+    public CharSequence getPageTitle(int position) {
+        return mCategories.get(position).getTitle();
+    }
+    
+    @Override
+    public int getCount() {
+        return mCategories == null ? 0 : mCategories.size();
+    }
+    
+}
diff --git a/src/com/samsung/srpol/ui/tabpager/PageFragment.java b/src/com/samsung/srpol/ui/tabpager/PageFragment.java
new file mode 100644 (file)
index 0000000..bdb7a22
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui.tabpager;
+
+import com.nhaarman.listviewanimations.appearance.AnimationAdapter;
+import com.nhaarman.listviewanimations.appearance.simple.AlphaInAnimationAdapter;
+import com.samsung.srpol.R;
+import com.samsung.srpol.data.Category;
+import com.samsung.srpol.data.Subcategory;
+import com.samsung.srpol.loader.AppListLoader;
+import com.samsung.srpol.parallax.ParallaxListView;
+import com.samsung.srpol.ui.AppInfoActivity;
+import com.samsung.srpol.ui.PopupActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.AdapterView.OnItemClickListener;
+
+public class PageFragment extends Fragment {
+
+    private AppListArrayAdapter mAppListArrayAdapter;
+    private Category mCategory;
+    private int mPosition;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mPosition = getArguments() != null ? getArguments().getInt("position") : 0;
+        setRetainInstance(true);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
+        
+        LinearLayout headerLayout = (LinearLayout) inflater.inflate(R.layout.header_layout, container, false);
+        headerLayout.setLayoutParams(new ListView.LayoutParams(
+                ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
+        if (mCategory == null) {
+            if (AppListLoader.getCategories() != null) {
+                mCategory = AppListLoader.getCategories().get(mPosition);
+            } else {
+                return rootView;
+            }
+        }
+        TextView header = (TextView) headerLayout.findViewById(R.id.section_label);
+        if (header != null) {
+            header.setText(mCategory.getDescription());
+        }
+        
+        TextView headerLabel = (TextView) rootView.findViewById(R.id.header_label);
+        if (headerLabel != null) {
+            String titleSufix = getActivity().getString(R.string.apps_that);
+            headerLabel.setText(titleSufix.concat(mCategory.getHeader()));
+        }
+        
+        //Header icons Click
+        LinearLayout groupIcons = (LinearLayout) headerLayout.findViewById(R.id.group_icons);
+        for (Subcategory subgroup : mCategory.getSubCategories()) {
+            ImageView icon = new ImageView(getActivity());
+            icon.setImageDrawable(subgroup.getIconDrawable());
+            groupIcons.addView(icon);
+        }
+
+        //Header More click
+        ImageButton moreButton = (ImageButton) headerLayout.findViewById(R.id.legend_btn);
+        moreButton.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View arg0) {
+                Intent intent = new Intent(getActivity(), PopupActivity.class);
+                intent.putExtra(PopupActivity.POPUP_CATEGORY, mPosition);
+                getActivity().startActivity(intent);
+            }
+        });
+
+        // List with applications
+        ParallaxListView listview = (ParallaxListView) rootView.findViewById(R.id.listview);
+        listview.addParallaxedHeaderView(headerLayout);
+        mAppListArrayAdapter = new AppListArrayAdapter(getActivity(), mCategory);
+        AnimationAdapter adapter = new AlphaInAnimationAdapter(mAppListArrayAdapter);
+        adapter.setAbsListView(listview);
+        listview.setAdapter(adapter);
+        listview.setOnItemClickListener(new OnItemClickListener() {
+
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view,
+                    int positionInAdapter, long id) {
+                Intent intent = new Intent(getActivity(), AppInfoActivity.class);
+                intent.putExtra(AppInfoActivity.APP_PACKAGE_NAME,
+                        mAppListArrayAdapter.getItem(positionInAdapter - 1).getAppPackageName());
+                getActivity().startActivity(intent);
+            }
+        });
+        
+        return rootView;
+    }
+
+    public void notifyDataSetChanged() {
+        mAppListArrayAdapter.notifyDataSetChanged();
+    }
+
+}
diff --git a/src/com/samsung/srpol/utils/Utils.java b/src/com/samsung/srpol/utils/Utils.java
new file mode 100644 (file)
index 0000000..d938907
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.utils;
+
+import com.samsung.srpol.R;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.Settings;
+
+public class Utils {
+
+    private static final String SCHEME = "package";
+
+    private static final String APP_PKG_NAME_21 = "com.android.settings.ApplicationPkgName";
+
+    private static final String APP_PKG_NAME_22 = "pkg";
+
+    private static final String APP_DETAILS_PACKAGE_NAME = "com.android.settings";
+
+    private static final String APP_DETAILS_CLASS_NAME = "com.android.settings.InstalledAppDetails";
+
+    private static final String MY_PREFERENCES = "my_preferences";
+
+    private static Drawable mSystemIcon;
+    private static Drawable mSystemIconDisable;
+
+    /**
+     * @return the mSystemIcon
+     */
+    public static Drawable getmSystemIcon(Context context) {
+        if (mSystemIcon == null) {
+            return mSystemIcon = context.getResources().getDrawable(
+                    R.drawable.ic_system_red_dark);
+        } else {
+            return mSystemIcon;
+        }
+    }
+
+    /**
+     * @return the mSystemIcon
+     */
+    public static Drawable getmSystemIconDisable(Context context) {
+        if (mSystemIconDisable == null) {
+            return mSystemIconDisable = context.getResources().getDrawable(
+                    R.drawable.ic_system_red_disable);
+        } else {
+            return mSystemIconDisable;
+        }
+    }
+
+    /**
+     * Show Platform's Settings app Window with details about given packageName
+     * app
+     * 
+     * @param context
+     *            App context
+     * @param packageName
+     *            Package name of requested app details
+     */
+    public static void showInstalledAppDetails(Context context,
+            String packageName) {
+        Intent intent = new Intent();
+        final int apiLevel = Build.VERSION.SDK_INT;
+        if (apiLevel >= 9) { // above 2.3
+            intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+            Uri uri = Uri.fromParts(SCHEME, packageName, null);
+            intent.setData(uri);
+        } else { // below 2.3
+            // TODO not tested
+            final String appPkgName = (apiLevel == 8 ? APP_PKG_NAME_22
+                    : APP_PKG_NAME_21);
+            intent.setAction(Intent.ACTION_VIEW);
+            intent.setClassName(APP_DETAILS_PACKAGE_NAME,
+                    APP_DETAILS_CLASS_NAME);
+            intent.putExtra(appPkgName, packageName);
+        }
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+        context.startActivity(intent);
+    }
+
+    public static void unistallApp(Context context, String packageName) {
+        Intent intent = new Intent();
+        final int apiLevel = Build.VERSION.SDK_INT;
+        if (apiLevel >= 14) { // above 4.0
+            intent.setAction(Intent.ACTION_DELETE);
+            Uri uri = Uri.fromParts(SCHEME, packageName, null);
+            intent.setData(uri);
+        } else { // below 4.0
+            // TODO not tested
+            final String appPkgName = (apiLevel == 8 ? APP_PKG_NAME_22
+                    : APP_PKG_NAME_21);
+            intent.setAction(Intent.ACTION_VIEW);
+            intent.setClassName(APP_DETAILS_PACKAGE_NAME,
+                    APP_DETAILS_CLASS_NAME);
+            intent.putExtra(appPkgName, packageName);
+        }
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        context.startActivity(intent);
+    }
+
+    public static String getAppVersionCode(Context context) {
+        String versionName;
+        try {
+            versionName = context.getPackageManager().getPackageInfo(
+                    context.getPackageName(), 0).versionName;
+        } catch (NameNotFoundException e) {
+            versionName = "not found";
+            e.printStackTrace();
+        }
+        return versionName;
+    }
+
+    public static boolean isFirstRun(Context context) {
+        final SharedPreferences reader = context.getSharedPreferences(
+                MY_PREFERENCES, Context.MODE_PRIVATE);
+        final boolean first = reader.getBoolean("is_first", true);
+        if (first) {
+            final SharedPreferences.Editor editor = reader.edit();
+            editor.putBoolean("is_first", false);
+            editor.commit();
+        }
+        return first;
+    }
+
+    public static void startBrowser(Context context, String url) {
+        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        context.startActivity(intent);
+    }
+}