Fixed merge conflicts

git-svn-id: https://forja.rediris.es/svn/cusl6-swadroid/trunk@263 5bc14d19-1e4b-4ba2-aa50-860af135f48c
This commit is contained in:
Juan Miguel Boyero Corral 2012-04-07 14:57:17 +00:00
parent 7df960dc42
commit 0da86e7d9d
16 changed files with 673 additions and 263 deletions

6
.gitignore vendored
View File

@ -7,3 +7,9 @@ capturas/
iconos/
gitstats/
SWADroidTest/
.DS_Store
SWADroid/.DS_Store
SWADroid/gen/es/ugr/swad/swadroid/BuildConfig.java
SWADroid/gen/es/ugr/swad/swadroid/R.java

View File

@ -38,6 +38,8 @@
<activity android:theme="@android:style/Theme.NoTitleBar" android:label="@string/testsModuleLabel" android:configChanges="orientation" android:name=".modules.tests.TestsMake"></activity>
<activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name=".modules.Messages" android:label="@string/messagesModuleLabel" android:configChanges="keyboard|keyboardHidden|orientation"></activity>
<activity android:name=".modules.notifications.NotificationItem" android:theme="@android:style/Theme.NoTitleBar" android:label="@string/notificationsModuleLabel"></activity>
<activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name=".modules.Notices" android:label="@string/noticesModuleLabel" android:configChanges="keyboard|keyboardHidden|orientation"></activity>
<provider android:name=".sync.DummyProvider"
android:authorities="es.ugr.swad.content"

View File

@ -69,25 +69,25 @@ public final class R {
}
public static final class id {
public static final int actionBarLayout=0x7f090000;
public static final int clean_database_menu=0x7f09003f;
public static final int contentWebView=0x7f090024;
public static final int courseNameText=0x7f090022;
public static final int decrement=0x7f090020;
public static final int eventContent=0x7f090018;
public static final int eventDate=0x7f090014;
public static final int eventLocation=0x7f09001a;
public static final int eventMetaData=0x7f090012;
public static final int eventMsg=0x7f09001d;
public static final int eventSender=0x7f090016;
public static final int eventSummary=0x7f09001b;
public static final int eventText=0x7f09001c;
public static final int eventTime=0x7f090015;
public static final int eventType=0x7f090019;
public static final int increment=0x7f09001e;
public static final int clean_database_menu=0x7f090042;
public static final int contentWebView=0x7f090027;
public static final int courseNameText=0x7f090025;
public static final int decrement=0x7f090023;
public static final int eventContent=0x7f09001b;
public static final int eventDate=0x7f090017;
public static final int eventLocation=0x7f09001d;
public static final int eventMetaData=0x7f090015;
public static final int eventMsg=0x7f090020;
public static final int eventSender=0x7f090019;
public static final int eventSummary=0x7f09001e;
public static final int eventText=0x7f09001f;
public static final int eventTime=0x7f090018;
public static final int eventType=0x7f09001c;
public static final int increment=0x7f090021;
public static final int listIcon=0x7f09000a;
public static final int listItems=0x7f09000c;
public static final int listText=0x7f09000b;
public static final int messageReplyButton=0x7f090017;
public static final int messageReplyButton=0x7f09001a;
public static final int message_body_text=0x7f09000f;
public static final int message_button_accept=0x7f090010;
public static final int message_button_cancel=0x7f090011;
@ -95,41 +95,44 @@ public final class R {
public static final int message_subject_text=0x7f09000e;
public static final int moduleIcon=0x7f090001;
public static final int moduleName=0x7f090002;
public static final int notificationIcon=0x7f090013;
public static final int preferences_menu=0x7f090040;
public static final int notice_body_text=0x7f090012;
public static final int notice_button_accept=0x7f090013;
public static final int notice_button_cancel=0x7f090014;
public static final int notificationIcon=0x7f090016;
public static final int preferences_menu=0x7f090043;
public static final int progress_refresh=0x7f090009;
public static final int rate_menu=0x7f09003e;
public static final int rate_menu=0x7f090041;
public static final int refresh=0x7f090008;
public static final int senderNameText=0x7f090021;
public static final int share_menu=0x7f09003d;
public static final int summaryText=0x7f090023;
public static final int testAnswerTypesAcceptButton=0x7f090027;
public static final int testAnswerTypesList=0x7f090026;
public static final int testAnswerTypesText=0x7f090025;
public static final int senderNameText=0x7f090024;
public static final int share_menu=0x7f090040;
public static final int summaryText=0x7f090026;
public static final int testAnswerTypesAcceptButton=0x7f09002a;
public static final int testAnswerTypesList=0x7f090029;
public static final int testAnswerTypesText=0x7f090028;
public static final int testEvaluateButton=0x7f090006;
public static final int testMakeAnswer=0x7f09002b;
public static final int testMakeBottomBar=0x7f090030;
public static final int testMakeCorrectAnswer=0x7f09002e;
public static final int testMakeCorrectAnswerImage=0x7f09002c;
public static final int testMakeEditText=0x7f09002d;
public static final int testMakeList=0x7f09002f;
public static final int testMakeNextButton=0x7f090033;
public static final int testMakePrevButton=0x7f090031;
public static final int testMakeQuestionScore=0x7f090029;
public static final int testMakeStem=0x7f090028;
public static final int testMakeText=0x7f09002a;
public static final int testNumQuestionsAcceptButton=0x7f090039;
public static final int testNumQuestionsNumberPicker=0x7f090036;
public static final int testNumQuestionsText=0x7f090038;
public static final int testResultsButton=0x7f090037;
public static final int testResultsScore=0x7f090035;
public static final int testResultsText=0x7f090034;
public static final int testMakeAnswer=0x7f09002e;
public static final int testMakeBottomBar=0x7f090033;
public static final int testMakeCorrectAnswer=0x7f090031;
public static final int testMakeCorrectAnswerImage=0x7f09002f;
public static final int testMakeEditText=0x7f090030;
public static final int testMakeList=0x7f090032;
public static final int testMakeNextButton=0x7f090036;
public static final int testMakePrevButton=0x7f090034;
public static final int testMakeQuestionScore=0x7f09002c;
public static final int testMakeStem=0x7f09002b;
public static final int testMakeText=0x7f09002d;
public static final int testNumQuestionsAcceptButton=0x7f09003c;
public static final int testNumQuestionsNumberPicker=0x7f090039;
public static final int testNumQuestionsText=0x7f09003b;
public static final int testResultsButton=0x7f09003a;
public static final int testResultsScore=0x7f090038;
public static final int testResultsText=0x7f090037;
public static final int testShowResultsButton=0x7f090004;
public static final int testTagsAcceptButton=0x7f09003c;
public static final int testTagsList=0x7f09003b;
public static final int testTagsText=0x7f09003a;
public static final int test_questions_bar=0x7f090032;
public static final int timepicker_input=0x7f09001f;
public static final int testTagsAcceptButton=0x7f09003f;
public static final int testTagsList=0x7f09003e;
public static final int testTagsText=0x7f09003d;
public static final int test_questions_bar=0x7f090035;
public static final int timepicker_input=0x7f090022;
public static final int title_sep_1=0x7f090007;
public static final int title_sep_2=0x7f090005;
public static final int title_sep_3=0x7f090003;
@ -143,139 +146,145 @@ public final class R {
public static final int list_items=0x7f030005;
public static final int main=0x7f030006;
public static final int messages_dialog=0x7f030007;
public static final int notifications_list_item=0x7f030008;
public static final int number_picker=0x7f030009;
public static final int simple_list_item=0x7f03000a;
public static final int single_notification_view=0x7f03000b;
public static final int tests_answer_types=0x7f03000c;
public static final int tests_make_questions=0x7f03000d;
public static final int tests_make_results=0x7f03000e;
public static final int tests_num_questions=0x7f03000f;
public static final int tests_tags=0x7f030010;
public static final int notice_dialog=0x7f030008;
public static final int notifications_list_item=0x7f030009;
public static final int number_picker=0x7f03000a;
public static final int simple_list_item=0x7f03000b;
public static final int single_notification_view=0x7f03000c;
public static final int tests_answer_types=0x7f03000d;
public static final int tests_make_questions=0x7f03000e;
public static final int tests_make_results=0x7f03000f;
public static final int tests_num_questions=0x7f030010;
public static final int tests_tags=0x7f030011;
}
public static final class menu {
public static final int menu_main=0x7f080000;
}
public static final class string {
public static final int about_preferences=0x7f070017;
public static final int acceptMsg=0x7f07003f;
public static final int allMsg=0x7f070041;
public static final int about_preferences=0x7f070018;
public static final int acceptMsg=0x7f070040;
public static final int allMsg=0x7f070042;
public static final int app_name=0x7f070000;
public static final int assignment=0x7f070034;
public static final int author_preferences=0x7f070019;
public static final int blogTitle=0x7f070071;
public static final int blogURL=0x7f07006b;
public static final int cancelMsg=0x7f070040;
public static final int cleanDatabaseMsg=0x7f070063;
public static final int cleanDatabaseTitle_menu=0x7f070016;
public static final int close_dialog=0x7f070007;
public static final int content=0x7f070031;
public static final int assignment=0x7f070035;
public static final int author_preferences=0x7f07001a;
public static final int blogTitle=0x7f070076;
public static final int blogURL=0x7f070070;
public static final int cancelMsg=0x7f070041;
public static final int cleanDatabaseMsg=0x7f070068;
public static final int cleanDatabaseTitle_menu=0x7f070017;
public static final int close_dialog=0x7f070008;
public static final int content=0x7f070032;
public static final int coursesModuleLabel=0x7f070003;
public static final int coursesProgressDescription=0x7f07001f;
public static final int coursesProgressTitle=0x7f07001e;
public static final int dateMsg=0x7f070038;
public static final int errorBadLoginMsg=0x7f070058;
public static final int errorConnectionMsg=0x7f07005a;
public static final int errorCopyMsg_DB=0x7f070029;
public static final int errorMsgLaunchingActivity=0x7f070026;
public static final int errorMsgNoConnection=0x7f070028;
public static final int errorMsgWorkaroundEmulator=0x7f070027;
public static final int errorServerResponseMsg=0x7f070059;
public static final int errorTimeoutMsg=0x7f07005b;
public static final int evaluation=0x7f070033;
public static final int examAnnouncement=0x7f07002c;
public static final int facebookTitle=0x7f07006e;
public static final int facebookURL=0x7f070068;
public static final int falseMsg=0x7f07003e;
public static final int firstRunMsg=0x7f070055;
public static final int footMessageMsg=0x7f070075;
public static final int forumReply=0x7f070030;
public static final int fromMsg=0x7f070037;
public static final int googlePlusTitle=0x7f07006f;
public static final int googlePlusURL=0x7f070069;
public static final int initialDialogTitle=0x7f070056;
public static final int coursesProgressDescription=0x7f070020;
public static final int coursesProgressTitle=0x7f07001f;
public static final int dateMsg=0x7f070039;
public static final int errorBadLoginMsg=0x7f070059;
public static final int errorConnectionMsg=0x7f07005b;
public static final int errorCopyMsg_DB=0x7f07002a;
public static final int errorMsgLaunchingActivity=0x7f070027;
public static final int errorMsgNoConnection=0x7f070029;
public static final int errorMsgWorkaroundEmulator=0x7f070028;
public static final int errorServerResponseMsg=0x7f07005a;
public static final int errorTimeoutMsg=0x7f07005c;
public static final int evaluation=0x7f070034;
public static final int examAnnouncement=0x7f07002d;
public static final int facebookTitle=0x7f070073;
public static final int facebookURL=0x7f07006d;
public static final int falseMsg=0x7f07003f;
public static final int firstRunMsg=0x7f070056;
public static final int footMessageMsg=0x7f07007a;
public static final int forumReply=0x7f070031;
public static final int fromMsg=0x7f070038;
public static final int googlePlusTitle=0x7f070074;
public static final int googlePlusURL=0x7f07006e;
public static final int initialDialogTitle=0x7f070057;
public static final int loginModuleLabel=0x7f070001;
public static final int loginProgressDescription=0x7f07001d;
public static final int loginProgressTitle=0x7f07001c;
public static final int loginSuccessfulMsg=0x7f07002b;
public static final int loginTitle_menu=0x7f07001b;
public static final int mailingListTitle=0x7f070070;
public static final int mailingListURL=0x7f07006a;
public static final int marketTitle=0x7f070072;
public static final int marketURL=0x7f070065;
public static final int marketWebURL=0x7f070066;
public static final int marksFile=0x7f07002d;
public static final int marksMsg=0x7f070076;
public static final int message=0x7f07002f;
public static final int messageSendErrorMsg=0x7f07005e;
public static final int messageSendedMsg=0x7f07005d;
public static final int message_body_title=0x7f070061;
public static final int message_receivers_title=0x7f07005f;
public static final int message_subject_title=0x7f070060;
public static final int messages=0x7f070032;
public static final int loginProgressDescription=0x7f07001e;
public static final int loginProgressTitle=0x7f07001d;
public static final int loginSuccessfulMsg=0x7f07002c;
public static final int loginTitle_menu=0x7f07001c;
public static final int mailingListTitle=0x7f070075;
public static final int mailingListURL=0x7f07006f;
public static final int marketTitle=0x7f070077;
public static final int marketURL=0x7f07006a;
public static final int marketWebURL=0x7f07006b;
public static final int marksFile=0x7f07002e;
public static final int marksMsg=0x7f07007b;
public static final int message=0x7f070030;
public static final int messageSendErrorMsg=0x7f07005f;
public static final int messageSendedMsg=0x7f07005e;
public static final int message_body_title=0x7f070062;
public static final int message_receivers_title=0x7f070060;
public static final int message_subject_title=0x7f070061;
public static final int messages=0x7f070033;
public static final int messagesModuleLabel=0x7f070005;
public static final int noContentMsg=0x7f07003a;
public static final int noCourseSelectedMsg=0x7f070043;
public static final int noMsg=0x7f07003c;
public static final int noQuestionsAvailableTestsDownloadMsg=0x7f070044;
public static final int noQuestionsPluggableTestsDownloadMsg=0x7f070045;
public static final int noSubjectMsg=0x7f070039;
public static final int notice=0x7f07002e;
public static final int notificationsAlertMsg=0x7f070074;
public static final int notificationsAlertTitle=0x7f070073;
public static final int notificationsDownloadedMsg=0x7f070023;
public static final int notificationsEmptyListMsg=0x7f070022;
public static final int noContentMsg=0x7f07003b;
public static final int noCourseSelectedMsg=0x7f070044;
public static final int noMsg=0x7f07003d;
public static final int noQuestionsAvailableTestsDownloadMsg=0x7f070045;
public static final int noQuestionsPluggableTestsDownloadMsg=0x7f070046;
public static final int noSubjectMsg=0x7f07003a;
public static final int notice=0x7f07002f;
public static final int noticePublished=0x7f070065;
public static final int noticeSendError=0x7f070066;
public static final int notice_body_title=0x7f070063;
public static final int noticesModuleLabel=0x7f070006;
public static final int notificationsAlertMsg=0x7f070079;
public static final int notificationsAlertTitle=0x7f070078;
public static final int notificationsDownloadedMsg=0x7f070024;
public static final int notificationsEmptyListMsg=0x7f070023;
public static final int notificationsModuleLabel=0x7f070002;
public static final int notificationsProgressDescription=0x7f070021;
public static final int notificationsProgressTitle=0x7f070020;
public static final int organization_preferences=0x7f07001a;
public static final int preferencesTitle_menu=0x7f070013;
public static final int questionsTestsDownloadSuccesfulMsg=0x7f070046;
public static final int rateTitle_menu=0x7f070015;
public static final int saveMsg_preferences=0x7f070010;
public static final int saveSummary_preferences=0x7f070011;
public static final int saveTitle_preferences=0x7f070012;
public static final int selectCourseTitle=0x7f070042;
public static final int sendMsg=0x7f070062;
public static final int sendingMessageMsg=0x7f07005c;
public static final int set_preferences=0x7f070008;
public static final int shareBodyMsg=0x7f070064;
public static final int shareTitle_menu=0x7f070014;
public static final int survey=0x7f070035;
public static final int testAnswerTypesMsg=0x7f07004d;
public static final int testEvaluateMsg=0x7f07004f;
public static final int testNoAnswerTypesSelectedMsg=0x7f07004e;
public static final int testNoDetailsMsg=0x7f070053;
public static final int testNoQuestionsCourseMsg=0x7f070047;
public static final int testNoQuestionsMeetsSpecifiedCriteriaMsg=0x7f070049;
public static final int testNoQuestionsMsg=0x7f070048;
public static final int testNoResultsMsg=0x7f070054;
public static final int testNoTagsSelectedMsg=0x7f07004c;
public static final int testNumQuestionsMsg=0x7f07004a;
public static final int testResultsTextMsg=0x7f070050;
public static final int testShowResultsDetailsMsg=0x7f070052;
public static final int testShowResultsMsg=0x7f070051;
public static final int testTagsMsg=0x7f07004b;
public static final int testsDownloadProgressDescription=0x7f070025;
public static final int testsDownloadProgressTitle=0x7f070024;
public static final int notificationsProgressDescription=0x7f070022;
public static final int notificationsProgressTitle=0x7f070021;
public static final int organization_preferences=0x7f07001b;
public static final int preferencesTitle_menu=0x7f070014;
public static final int publishingNotice=0x7f070064;
public static final int questionsTestsDownloadSuccesfulMsg=0x7f070047;
public static final int rateTitle_menu=0x7f070016;
public static final int saveMsg_preferences=0x7f070011;
public static final int saveSummary_preferences=0x7f070012;
public static final int saveTitle_preferences=0x7f070013;
public static final int selectCourseTitle=0x7f070043;
public static final int sendMsg=0x7f070067;
public static final int sendingMessageMsg=0x7f07005d;
public static final int set_preferences=0x7f070009;
public static final int shareBodyMsg=0x7f070069;
public static final int shareTitle_menu=0x7f070015;
public static final int survey=0x7f070036;
public static final int testAnswerTypesMsg=0x7f07004e;
public static final int testEvaluateMsg=0x7f070050;
public static final int testNoAnswerTypesSelectedMsg=0x7f07004f;
public static final int testNoDetailsMsg=0x7f070054;
public static final int testNoQuestionsCourseMsg=0x7f070048;
public static final int testNoQuestionsMeetsSpecifiedCriteriaMsg=0x7f07004a;
public static final int testNoQuestionsMsg=0x7f070049;
public static final int testNoResultsMsg=0x7f070055;
public static final int testNoTagsSelectedMsg=0x7f07004d;
public static final int testNumQuestionsMsg=0x7f07004b;
public static final int testResultsTextMsg=0x7f070051;
public static final int testShowResultsDetailsMsg=0x7f070053;
public static final int testShowResultsMsg=0x7f070052;
public static final int testTagsMsg=0x7f07004c;
public static final int testsDownloadProgressDescription=0x7f070026;
public static final int testsDownloadProgressTitle=0x7f070025;
public static final int testsModuleLabel=0x7f070004;
public static final int title_error_dialog=0x7f070006;
public static final int trueMsg=0x7f07003d;
public static final int twitterTitle=0x7f07006d;
public static final int twitterURL=0x7f070067;
public static final int twitterUser=0x7f07006c;
public static final int unknownNotification=0x7f070036;
public static final int upgradeMsg=0x7f070057;
public static final int upgradeMsg_DB=0x7f07002a;
public static final int userIDName_preferences=0x7f07000a;
public static final int userIDSummary_preferences=0x7f07000b;
public static final int userIDTitle_preferences=0x7f07000c;
public static final int userPasswordName_preferences=0x7f07000d;
public static final int userPasswordSummary_preferences=0x7f07000e;
public static final int userPasswordTitle_preferences=0x7f07000f;
public static final int user_preferences=0x7f070009;
public static final int versionTitle_preferences=0x7f070018;
public static final int yesMsg=0x7f07003b;
public static final int title_error_dialog=0x7f070007;
public static final int trueMsg=0x7f07003e;
public static final int twitterTitle=0x7f070072;
public static final int twitterURL=0x7f07006c;
public static final int twitterUser=0x7f070071;
public static final int unknownNotification=0x7f070037;
public static final int upgradeMsg=0x7f070058;
public static final int upgradeMsg_DB=0x7f07002b;
public static final int userIDName_preferences=0x7f07000b;
public static final int userIDSummary_preferences=0x7f07000c;
public static final int userIDTitle_preferences=0x7f07000d;
public static final int userPasswordName_preferences=0x7f07000e;
public static final int userPasswordSummary_preferences=0x7f07000f;
public static final int userPasswordTitle_preferences=0x7f070010;
public static final int user_preferences=0x7f07000a;
public static final int versionTitle_preferences=0x7f070019;
public static final int yesMsg=0x7f07003c;
}
public static final class xml {
public static final int account_preferences=0x7f040000;

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="3dip">
<EditText
android:id="@+id/notice_body_text"
android:hint="@string/notice_body_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/foreground1">
</EditText>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/notice_button_accept"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sendMsg">
</Button>
<Button
android:id="@+id/notice_button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancelMsg">
</Button>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@ -6,6 +6,7 @@
<string name="coursesModuleLabel">Asignaturas</string>
<string name="testsModuleLabel">Tests</string>
<string name="messagesModuleLabel">Enviar mensaje</string>
<string name="noticesModuleLabel">Publicar nuevo aviso</string>
<string name="title_error_dialog">ERROR</string>
<string name="close_dialog">Cerrar</string>
<string name="set_preferences">Configuración</string>
@ -111,6 +112,9 @@
<string name="message_receivers_title">Destinatarios (separados por comas)</string>
<string name="message_subject_title">Asunto</string>
<string name="message_body_title">Mensaje</string>
<string name="notice_body_title">Aviso</string>
<string name="publishingNotice">Publicando aviso...</string>
<string name="noticePublished">Aviso publicado</string><string name="noticeSendError">Error al publicar el nuevo aviso</string>
<string name="sendMsg">Enviar</string>
<string name="cleanDatabaseMsg">Todos los datos de la base de datos han sido borrados</string>
<string name="shareBodyMsg">Estoy usando #SWADroid en mi Android para acceder a la

View File

@ -6,6 +6,7 @@
<string name="coursesModuleLabel">Courses</string>
<string name="testsModuleLabel">Tests</string>
<string name="messagesModuleLabel">Send message</string>
<string name="noticesModuleLabel">Publish new notice</string>
<string name="title_error_dialog">ERROR</string>
<string name="close_dialog">Close</string>
<string name="set_preferences">Preferences</string>
@ -108,6 +109,9 @@
<string name="message_receivers_title">Receivers (separated by comma)</string>
<string name="message_subject_title">Subject</string>
<string name="message_body_title">Message</string>
<string name="notice_body_title">Notice</string>
<string name="publishingNotice">Publishing notice...</string>
<string name="noticePublished">Notice published</string><string name="noticeSendError">Error while publishing the new notice</string>
<string name="sendMsg">Send</string>
<string name="cleanDatabaseMsg">The database has been cleaned</string>
<string name="shareBodyMsg">I\'m using #SWADroid in my Android mobile for access to

View File

@ -3,6 +3,7 @@
<table name="courses" to-string="%name%">
<field name="id" obligatory="true" type="long"/>
<field name="name" obligatory="true" type="text"/>
<field name="userRole" obligatory="true" type="integer"/>
</table>
<table name="notifications" to-string="%name%" new-in-version="3">

View File

@ -72,6 +72,10 @@ public class Global {
* Request code for Tests module.
*/
public static final int MESSAGES_REQUEST_CODE = 8;
/**
* Request code for Notice module
*/
public static final int NOTICES_REQUESET_CODE = 9;
/**
* Prefix tag name for Logcat
*/
@ -177,6 +181,7 @@ public class Global {
}
/**
* Function to parse from Boolean to String
* @param b Boolean to be parsed
* @return "Y" if b==true, "N" in other case

View File

@ -38,6 +38,10 @@ public class ImageExpandableListAdapter extends SimpleExpandableListAdapter {
final String NAME = "listText";
final String IMAGE = "listIcon";
final LayoutInflater layoutInflater;
List<? extends Map<String, ?>> groupData;
List<? extends List<? extends Map<String, ?>>> childData;
Context context;
public ImageExpandableListAdapter(Context context,
List<? extends Map<String, ?>> groupData, int expandedGroupLayout,
@ -48,7 +52,8 @@ public class ImageExpandableListAdapter extends SimpleExpandableListAdapter {
super(context, groupData, expandedGroupLayout, groupFrom,
groupTo, childData, childLayout, childFrom, childTo);
this.groupData = groupData;
this.childData = childData;
layoutInflater = LayoutInflater.from(context);
}
@ -93,4 +98,21 @@ public class ImageExpandableListAdapter extends SimpleExpandableListAdapter {
public View newChildView(boolean isLastChild, ViewGroup parent) {
return layoutInflater.inflate(R.layout.image_list_item, parent, false);
}
/**
* Removes the child which located at childPosition under the group located at groupPosition.
* If it is removed, it will not be shown.
* @param groupPosition
* @param childPosition
* @return true if the child was removed;
* */
public boolean removeChild(int groupPosition,int childPosition){
if(groupPosition>= getGroupCount() || childPosition>=getChildrenCount(groupPosition))
return false;
childData.get(groupPosition).remove(childPosition);
super.notifyDataSetChanged();
return true;
}
}

View File

@ -42,6 +42,7 @@ import es.ugr.swad.swadroid.model.User;
import es.ugr.swad.swadroid.modules.Messages;
import es.ugr.swad.swadroid.modules.notifications.Notifications;
import es.ugr.swad.swadroid.modules.tests.Tests;
import es.ugr.swad.swadroid.modules.Notices;
import es.ugr.swad.swadroid.ssl.SecureConnection;
/**
@ -125,6 +126,9 @@ public class SWADMain extends MenuExpandableListActivity {
activity = new Intent(getBaseContext(), Messages.class);
activity.putExtra("notificationCode", new Long(0));
startActivityForResult(activity, Global.MESSAGES_REQUEST_CODE);
} else if(keyword.equals(getString(R.string.noticesModuleLabel))){
activity = new Intent(getBaseContext(), Notices.class);
startActivityForResult(activity, Global.NOTICES_REQUESET_CODE);
}
return true;
@ -176,6 +180,11 @@ public class SWADMain extends MenuExpandableListActivity {
map.put(IMAGE, getResources().getDrawable(R.drawable.msg));
messagesData.add(map);
map = new HashMap<String,Object>();
map.put(NAME, getString(R.string.noticesModuleLabel) );
map.put(IMAGE, getResources().getDrawable(R.drawable.note));
messagesData.add(map);
//Evaluation category
map = new HashMap<String,Object>();
map.put(NAME, getString(R.string.testsModuleLabel) );
@ -216,7 +225,7 @@ public class SWADMain extends MenuExpandableListActivity {
text = (TextView)this.findViewById(R.id.moduleName);
text.setText(R.string.app_name);
createMainMenu();
try {

View File

@ -31,13 +31,16 @@ public class Course extends Model {
* Course name
*/
private String name;
private int userRole;
private static PropertyInfo PI_id = new PropertyInfo();
private static PropertyInfo PI_name = new PropertyInfo();
private static PropertyInfo PI_userRole = new PropertyInfo();
@SuppressWarnings("unused")
private static PropertyInfo[] PI_PROP_ARRAY =
{
PI_id,
PI_name
PI_name,
PI_userRole
};
/**
@ -45,9 +48,10 @@ public class Course extends Model {
* @param id Course identifier
* @param name Course name
*/
public Course(long id, String name) {
public Course(long id, String name, int userRole) {
super(id);
this.name = name;
this.userRole = userRole;
}
/**
@ -65,6 +69,15 @@ public class Course extends Model {
public void setName(String name) {
this.name = name;
}
/**
* Gets user role inside the course
* @return user role (2 = student, 3 = teacher)
*/
public int getUserRole(){
return userRole;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
@ -82,7 +95,7 @@ public class Course extends Model {
*/
@Override
public String toString() {
return "Course [name=" + name + ", getId()=" + getId() + "]";
return "Course [name=" + name + ", getId()=" + getId() + " getUserRole()="+ getUserRole()+"]";
}
/* (non-Javadoc)
@ -94,6 +107,7 @@ public class Course extends Model {
{
case 0 : object = this.getId();break;
case 1 : object = name;break;
case 2 : object = userRole;break;
}
return object;
@ -103,7 +117,7 @@ public class Course extends Model {
* @see org.ksoap2.serialization.KvmSerializable#getPropertyCount()
*/
public int getPropertyCount() {
return 2;
return 3;
}
/* (non-Javadoc)
@ -118,7 +132,11 @@ public class Course extends Model {
case 1:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "name";
break;
break;
case 2:
propertyInfo.type = PropertyInfo.INTEGER_CLASS;
propertyInfo.name = "userRole";
break;
}
}
@ -130,6 +148,7 @@ public class Course extends Model {
{
case 0 : this.setId((Long)obj); break;
case 1 : name = (String)obj; break;
case 2 : userRole = (Integer)obj; break;
}
}
}

View File

@ -113,7 +113,8 @@ public class DataBaseHelper {
if(table.equals(Global.DB_TABLE_COURSES)) {
o = new Course(ent.getInt("id"),
ent.getString("name"));
ent.getString("name"),
ent.getInt("userRole"));
} else if(table.equals(Global.DB_TABLE_TEST_QUESTIONS_COURSE) ||
table.equals(Global.DB_TABLE_TEST_QUESTION_ANSWERS)) {
@ -266,6 +267,7 @@ public class DataBaseHelper {
Entity ent = new Entity(Global.DB_TABLE_COURSES);
ent.setValue("id", c.getId());
ent.setValue("name", c.getName());
ent.setValue("userRole", c.getUserRole());
ent.save();
}

View File

@ -33,10 +33,7 @@ public class User implements KvmSerializable {
* User code.
*/
private static String userCode;
/**
* Code of user type.
*/
private static String userTypeCode;
/**
* Webservices session key.
*/
@ -58,28 +55,27 @@ public class User implements KvmSerializable {
*/
private static String userFirstName;
/**
* Name of the user type.
* User role. 1:guest 2: student 3: teacher
*/
private static String userTypeName;
private static int userRole;
private static PropertyInfo PI_userCode = new PropertyInfo();
private static PropertyInfo PI_userTypeCode = new PropertyInfo();
private static PropertyInfo PI_wsKey = new PropertyInfo();
private static PropertyInfo PI_userID = new PropertyInfo();
private static PropertyInfo PI_userSurname1 = new PropertyInfo();
private static PropertyInfo PI_userSurname2 = new PropertyInfo();
private static PropertyInfo PI_userFirstName = new PropertyInfo();
private static PropertyInfo PI_userTypeName = new PropertyInfo();
private static PropertyInfo PI_userRole = new PropertyInfo();
@SuppressWarnings("unused")
private static PropertyInfo[] PI_PROP_ARRAY =
{
PI_userCode,
PI_userTypeCode,
PI_wsKey,
PI_userID,
PI_userSurname1,
PI_userSurname2,
PI_userFirstName,
PI_userTypeName
PI_userRole
};
/**
@ -99,15 +95,14 @@ public class User implements KvmSerializable {
* @param userFirstName User name.
* @param userTypeName Name of user type.
*/
public User(String userCode, String userTypeCode, String wsKey, String userID, String userSurname1, String userSurname2, String userFirstName, String userTypeName) {
public User(String userCode, String wsKey, String userID, String userSurname1, String userSurname2, String userFirstName, int userRole) {
User.userCode = userCode;
User.userTypeCode = userTypeCode;
User.wsKey = wsKey;
User.userID = userID;
User.userSurname1 = userSurname1;
User.userSurname2 = userSurname2;
User.userFirstName = userFirstName;
User.userTypeName = userTypeName;
User.userRole = userRole;
}
/**
@ -189,39 +184,7 @@ public class User implements KvmSerializable {
public static void setUserSurname2(String userSurname2) {
User.userSurname2 = userSurname2;
}
/**
* Gets Code of user type.
* @return Code of user type.
*/
public static String getUserTypeCode() {
return userTypeCode;
}
/**
* Sets Code of user type.
* @param userTypeCode Code of user type.
*/
public static void setUserTypeCode(String userTypeCode) {
User.userTypeCode = userTypeCode;
}
/**
* Gets Name of user type.
* @return Name of user type.
*/
public static String getUserTypeName() {
return userTypeName;
}
/**
* Sets Name of user type.
* @param userTypeName Name of user type.
*/
public static void setUserTypeName(String userTypeName) {
User.userTypeName = userTypeName;
}
/**
* Gets Webservices session key.
* @return Webservices session key.
@ -237,26 +200,42 @@ public class User implements KvmSerializable {
public static void setWsKey(String wsKey) {
User.wsKey = wsKey;
}
/**
* Gets user role
* @return user role 1:guest 2:student 3:teacher
* */
public static int getUserRole(){
return userRole;
}
/**
* Sets user role
* @param userRole
* */
//TODO check userRole is 1,2,3
public static void setUserRole(int userRole){
User.userRole = userRole;
}
public Object getProperty(int param) {
Object object = null;
switch(param)
{
case 0 : object = userCode;break;
case 1 : object = userTypeCode;break;
case 2 : object = wsKey;break;
case 3 : object = userID;break;
case 4 : object = userSurname1;break;
case 5 : object = userSurname2;break;
case 6 : object = userFirstName;break;
case 7 : object = userTypeName;break;
case 1 : object = wsKey;break;
case 2 : object = userID;break;
case 3 : object = userSurname1;break;
case 4 : object = userSurname2;break;
case 5 : object = userFirstName;break;
case 6 : object = userRole; break;
}
return object;
}
public int getPropertyCount() {
return 8;
return 7;
}
public void getPropertyInfo(int param, @SuppressWarnings("rawtypes") Hashtable arg1, PropertyInfo propertyInfo) {
@ -267,32 +246,28 @@ public class User implements KvmSerializable {
break;
case 1:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "userTypeCode";
propertyInfo.name = "wsKey";
break;
case 2:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "wsKey";
propertyInfo.name = "userID";
break;
case 3:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "userID";
break;
case 4:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "userSurname1";
break;
case 5:
case 4:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "userSurname2";
break;
case 6:
case 5:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "userFirstName";
break;
case 7:
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "userTypeName";
break;
break;
case 6:
propertyInfo.type = PropertyInfo.INTEGER_CLASS;
propertyInfo.name = "userRole";
break;
}
}
@ -300,13 +275,12 @@ public class User implements KvmSerializable {
switch(param)
{
case 0 : userCode = (String)obj; break;
case 1 : userTypeCode = (String)obj; break;
case 2 : wsKey = (String)obj; break;
case 3 : userID = (String)obj; break;
case 4 : userSurname1 = (String)obj; break;
case 5 : userSurname2 = (String)obj; break;
case 6 : userFirstName = (String)obj; break;
case 7 : userTypeName = (String)obj; break;
case 8 : userRole = (Integer)obj; break;
}
}

View File

@ -122,16 +122,17 @@ public class Courses extends Module {
int csSize = soap.getPropertyCount();
for (int i = 0; i < csSize; i++) {
SoapObject pii = (SoapObject)soap.getProperty(i);
long id = Long.parseLong(pii.getProperty(0).toString());
String name = pii.getProperty(1).toString();
Course c = new Course(id, name);
long id = Long.parseLong(pii.getProperty("courseCode").toString());
String name = pii.getProperty("courseName").toString();
int userRole = Integer.parseInt(pii.getProperty("userRole").toString());
Course c = new Course(id, name, userRole);
coursesSWAD.add(c);
/*if(isDebuggable)
Log.d(TAG, c.toString());*/
}
Log.i(TAG, "Retrieved " + csSize + " courses");
Log.i(TAG, "Retrieved " + csSize + " courses");
//Obtain old unregistered courses
obsoleteCourses.addAll(coursesDB);

View File

@ -20,6 +20,7 @@
package es.ugr.swad.swadroid.modules;
import android.os.Bundle;
import android.util.Log;
import es.ugr.swad.swadroid.Base64;
import es.ugr.swad.swadroid.Global;
import es.ugr.swad.swadroid.R;
@ -30,6 +31,7 @@ import java.security.NoSuchAlgorithmException;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.KvmSerializable;
import org.ksoap2.serialization.SoapObject;
import org.xmlpull.v1.XmlPullParserException;
/**
@ -108,26 +110,26 @@ public class Login extends Module {
md.update(prefs.getUserPassword().getBytes());
userPassword = new String(Base64.encodeBytes(md.digest()));
userPassword = userPassword.replace('+','-').replace('/','_').replace('=', ' ').replaceAll("\\s+", "").trim();
Log.i("Login", "pre send login");
//Creates webservice request, adds required params and sends request to webservice
createRequest();
addParam("userID", prefs.getUserID());
addParam("userPassword", userPassword);
addParam("appKey", Global.getAppKey());
sendRequest(User.class, true);
Log.i("Login", "sended login");
if (result != null) {
KvmSerializable ks = (KvmSerializable) result;
SoapObject soap = (SoapObject) result;
//Stores user data returned by webservice response
User.setUserCode(ks.getProperty(0).toString());
User.setUserTypeCode(ks.getProperty(1).toString());
User.setWsKey(ks.getProperty(2).toString());
User.setUserID(ks.getProperty(3).toString());
User.setUserSurname1(ks.getProperty(4).toString());
User.setUserSurname2(ks.getProperty(5).toString());
User.setUserFirstName(ks.getProperty(6).toString());
User.setUserTypeName(ks.getProperty(7).toString());
User.setUserCode(soap.getProperty("userCode").toString());
User.setWsKey(soap.getProperty("wsKey").toString());
User.setUserID(soap.getProperty("userID").toString());
User.setUserSurname1(soap.getProperty("userSurname1").toString());
User.setUserSurname2(soap.getProperty("userSurname2").toString());
User.setUserFirstName(soap.getProperty("userFirstname").toString());
int userRole =Integer.parseInt(soap.getProperty("userRole").toString());
User.setUserRole(userRole);
//Update application last login time
Global.setLastLoginTime(System.currentTimeMillis());
@ -136,13 +138,14 @@ public class Login extends Module {
/*if(isDebuggable) {
Log.d(TAG, "userCode=" + User.getUserCode());
Log.d(TAG, "userTypeCode=" + User.getUserTypeCode());
//Log.d(TAG, "userTypeCode=" + User.getUserTypeCode());
Log.d(TAG, "wsKey=" + User.getWsKey());
Log.d(TAG, "userID=" + User.getUserID());
Log.d(TAG, "userSurname1=" + User.getUserSurname1());
Log.d(TAG, "userSurname2=" + User.getUserSurname2());
Log.d(TAG, "userFirstName=" + User.getUserFirstName());
Log.d(TAG, "userTypeName=" + User.getUserTypeName());
//Log.d(TAG, "userTypeName=" + User.getUserTypeName());
Log.d(TAG, "userRole=" + String.valueOf(User.getUserRole()));
Log.d(TAG, "lastLoginTime=" + Global.getLastLoginTime());
}*/

View File

@ -0,0 +1,303 @@
/*
* This file is part of SWADroid.
*
* Copyright (C) 2010 Juan Miguel Boyero Corral <juanmi1982@gmail.com>
*
* SWADroid is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* SWADroid 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 SWADroid. If not, see <http://www.gnu.org/licenses/>.
*/
package es.ugr.swad.swadroid.modules;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import org.ksoap2.SoapFault;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import es.ugr.swad.swadroid.Global;
import es.ugr.swad.swadroid.Preferences;
import es.ugr.swad.swadroid.R;
import es.ugr.swad.swadroid.model.Course;
import es.ugr.swad.swadroid.model.Model;
import es.ugr.swad.swadroid.model.User;
/**
* Module for send messages.
* @author Helena Rodriguez Gijon <helena.rodriguez.gijon@gmail.com>
*/
public class Notices extends Module {
/**
* Messages tag name for Logcat
*/
public static final String TAG = Global.APP_TAG + " Notice";
/**
* Course code
*/
private Long courseCode;
/**
* Notice's body
*/
private String body;
private Dialog noticeDialog;
/**
* Application preferences.
*/
protected static Preferences prefs = new Preferences();
/**
* Cursor for database access
*/
private Cursor dbCursor;
/**
* User courses list
*/
private List<Model>listCourses;
/**
* Selected course code
*/
private long selectedCourseCode = 0;
private OnClickListener positiveClickListener = new OnClickListener() {
public void onClick(View v) {
if(isDebuggable) {
Log.i(TAG, "on click positive before send request to server");
}
try {
/*if(isDebuggable) {
Log.i(TAG, "selectedCourseCode = " + Long.toString(courseCode));
}*/
runConnection();
} catch (Exception ex) {
String errorMsg = getString(R.string.errorServerResponseMsg);
error(errorMsg);
if(isDebuggable) {
Log.e(ex.getClass().getSimpleName(), errorMsg);
ex.printStackTrace();
}
}
}
};
private OnClickListener negativeClickListener = new OnClickListener() {
public void onClick(View v) {
finish();
}
};
private void launchNoticeDialog(){
noticeDialog = new Dialog(this);
Button acceptButton, cancelButton;
//Course selectedCourse = (Course)listCourses.get(selectedCourseCode);
//String selectedCourseName = selectedCourse.getName();
noticeDialog.setTitle(R.string.noticesModuleLabel);
//TODO noticeDialog.setTitle(R.string.noticeModuleLabel + listCourses.get(selectedCourseCode));
noticeDialog.setContentView(R.layout.notice_dialog);
noticeDialog.setCancelable(true);
noticeDialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
acceptButton = (Button) noticeDialog.findViewById(R.id.notice_button_accept);
acceptButton.setOnClickListener(positiveClickListener);
cancelButton = (Button) noticeDialog.findViewById(R.id.notice_button_cancel);
cancelButton.setOnClickListener(negativeClickListener);
noticeDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
setResult(RESULT_CANCELED);
finish();
}
});
noticeDialog.show();
}
@Override
protected void requestService() throws NoSuchAlgorithmException,
IOException, XmlPullParserException, SoapFault,
IllegalAccessException, InstantiationException {
readData();
createRequest();
addParam("wsKey",User.getWsKey());
addParam("courseCode",(int)selectedCourseCode);
addParam("body",body);
sendRequest(User.class,false);
setResult(RESULT_OK);
}
@Override
protected void connect() {
String progressDescription = getString(R.string.noticesModuleLabel);
int progressTitle = R.string.noticesModuleLabel;
new Connect(false, progressDescription, progressTitle).execute();
Toast.makeText(this, R.string.publishingNotice, Toast.LENGTH_SHORT).show();
Log.i(TAG, getString(R.string.publishingNotice));
}
@Override
protected void postConnect() {
String noticeSended = getString(R.string.noticePublished);
Toast.makeText(this, noticeSended, Toast.LENGTH_LONG).show();
Log.i(TAG, noticeSended);
finish();
}
private void readData() {
EditText bd = (EditText) noticeDialog.findViewById(R.id.notice_body_text);
body = bd.getText().toString();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setMETHOD_NAME("sendNotice");
}
@Override
protected void onPause() {
super.onPause();
//noticeDialog.dismiss();
}
@Override
protected void onStart() {
Intent activity;
super.onStart();
prefs.getPreferences(getBaseContext());
activity = new Intent(getBaseContext(), Courses.class );
Toast.makeText(getBaseContext(), R.string.coursesProgressDescription, Toast.LENGTH_LONG).show();
startActivityForResult(activity,Global.COURSES_REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
int lastCourseSelected;
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){
switch(requestCode){
//After get the list of courses, a dialog is launched to choice the course
case Global.COURSES_REQUEST_CODE:
final AlertDialog.Builder coursesDialog = new AlertDialog.Builder(this);
dbCursor = dbHelper.getDb().getCursor(Global.DB_TABLE_COURSES, "userRole>=3", "name");
listCourses = dbHelper.getAllRows(Global.DB_TABLE_COURSES, "userRole>=3", "name");
lastCourseSelected = prefs.getLastCourseSelected();
coursesDialog.setSingleChoiceItems(dbCursor, lastCourseSelected, "name", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Course c = (Course) listCourses.get(whichButton);
selectedCourseCode = c.getId();
prefs.setLastCourseSelected(whichButton);
if(isDebuggable){
Integer s = whichButton;
Log.i(TAG, "singleChoice = " + s.toString());
}
}
});
coursesDialog.setTitle(R.string.selectCourseTitle);
coursesDialog.setPositiveButton(R.string.acceptMsg, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
try {
if(selectedCourseCode == 0) {
Course c = (Course) listCourses.get(prefs.getLastCourseSelected());
selectedCourseCode = c.getId();
}
if(isDebuggable) {
Log.i(TAG, "selectedCourseCode = " + Long.toString(selectedCourseCode));
}
dialog.dismiss();
launchNoticeDialog();
} catch (Exception ex) {
String errorMsg = getString(R.string.errorServerResponseMsg);
error(errorMsg);
if(isDebuggable) {
Log.e(ex.getClass().getSimpleName(), errorMsg);
ex.printStackTrace();
}
}
}
});
coursesDialog.setNegativeButton(R.string.cancelMsg, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
setResult(RESULT_CANCELED);
finish();
}
});
coursesDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
//dialog.cancel();
setResult(RESULT_CANCELED);
finish();
}
});
coursesDialog.show();
break;
}
} else {
setResult(RESULT_CANCELED);
finish();
}
}
@Override
protected void onError() {
// TODO Auto-generated method stub
}
}