Refactorización a Pictogram Communicator y Pictogram Supervisor

working in several issues
parent 3171bb32
Showing with 106 additions and 84 deletions
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yottacode.pictogram">
package="com.yottacode.pictogram.commonlibrary">
<application
android:allowBackup="true"
......
......@@ -9,7 +9,7 @@ import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.yottacode.pictogram.R;
import com.yottacode.pictogram.commonlibrary.R;
import com.yottacode.pictogram.tools.Img;
import org.json.JSONException;
......
package com.yottacode.pictogram.dao;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.util.Log;
import com.yottacode.pictogram.BuildConfig;
import com.yottacode.pictogram.R;
import android.util.Log;
import com.yottacode.pictogram.tools.PCBcontext;
import com.yottacode.pictogram.commonlibrary.BuildConfig;
import com.yottacode.pictogram.commonlibrary.R;
import java.io.InputStream;
......
......@@ -6,7 +6,7 @@ import android.content.Intent;
import android.util.Log;
import com.yottacode.net.RestapiWrapper;
import com.yottacode.pictogram.R;
import com.yottacode.pictogram.commonlibrary.R;
import com.yottacode.pictogram.net.ImgDownloader;
import com.yottacode.pictogram.net.ServerLogin;
import com.yottacode.pictogram.tools.Img;
......@@ -45,7 +45,7 @@ public class UserLogin {
}
private void manageSupervisorLogin(final String email, final String password, boolean online,
final Activity activity, final Class PictogramActivity, final Class LoginActivity) {
final Activity activity, final Class LoginActivity) {
if (online) {
......@@ -119,13 +119,12 @@ public class UserLogin {
}
});
} else //offline
checkLogin_sup_offline(email, password, activity, PictogramActivity, LoginActivity);
checkLogin_sup_offline(email, password, activity, LoginActivity);
}
private void checkLogin_sup_offline(String email, String password, Activity activity,
Class PictogramActivity, Class LoginActivity) {
private void checkLogin_sup_offline(String email, String password, Activity activity, Class LoginActivity) {
try {
Vector<User> localUsers = PCBcontext.getDevice().findUser(email, password);
Log.i(this.getClass().getCanonicalName(), "Offline login request for supervisor "+email+localUsers.elementAt(0).get_email_sup()+localUsers.elementAt(0).is_supervisor());
......@@ -264,19 +263,18 @@ public class UserLogin {
return super.hashCode();
}
public void login(String username, String password, Activity activity, Class PictogramActivity, Class LoginActivity) {
public void login(String username, String password, Activity activity, Class activityAfterLogin) {
if (PCBcontext.is_user_logged()) PCBcontext.unset_user();
Log.e("WWWWWWWWWWWWWWWWWWW",PCBcontext.getContext().getPackageName());
boolean online = RestapiWrapper.ping(activity.getResources().getString(R.string.server), "server/ping");
if (isSupervisorLoginPattern(username))
if (PCBcontext.getActivityContext().getPackageName().equals("com.yottacode.pictogram.communicator"))
GUITools.show_alert(PCBcontext.getActivityContext(), R.string.login_ilegaluser);
else
manageSupervisorLogin(username, password, online, activity, PictogramActivity, LoginActivity);
manageSupervisorLogin(username, password, online, activity, activityAfterLogin);
else if (!PCBcontext.getActivityContext().getPackageName().equals("com.yottacode.pictogram.communicator"))
GUITools.show_alert(PCBcontext.getActivityContext(),R.string.login_ilegaluser);
else
manageStudentLogin(username,password,online, activity, PictogramActivity);
manageStudentLogin(username,password,online, activity, activityAfterLogin);
}
}
......@@ -4,7 +4,7 @@ import android.os.AsyncTask;
import android.util.Log;
import com.yottacode.net.RestapiWrapper;
import com.yottacode.pictogram.R;
import com.yottacode.pictogram.commonlibrary.R;
import com.yottacode.pictogram.action.VocabularyAction;
import com.yottacode.pictogram.dao.Picto;
import com.yottacode.pictogram.net.ImgDownloader;
......
......@@ -6,7 +6,7 @@ import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import com.yottacode.pictogram.R;
import com.yottacode.pictogram.commonlibrary.R;
import com.yottacode.pictogram.dao.Picto;
import com.yottacode.pictogram.tools.Img;
......
......@@ -4,7 +4,7 @@ import android.content.Context;
import android.util.Log;
import com.yottacode.net.RestapiWrapper;
import com.yottacode.pictogram.R;
import com.yottacode.pictogram.commonlibrary.R;
import com.yottacode.pictogram.dao.DeviceHelper;
import com.yottacode.pictogram.dao.LoginException;
import com.yottacode.pictogram.dao.User;
......
......@@ -7,7 +7,7 @@ import com.google.gson.JsonObject;
import com.koushikdutta.ion.Ion;
import com.koushikdutta.ion.Response;
import com.yottacode.net.RestapiWrapper;
import com.yottacode.pictogram.R;
import com.yottacode.pictogram.commonlibrary.R;
import com.yottacode.pictogram.action.VocabularyAction;
import com.yottacode.pictogram.dao.Picto;
import com.yottacode.pictogram.tools.Img;
......
......@@ -7,7 +7,7 @@ import android.util.Log;
import com.yottacode.net.RestapiWrapper;
import com.yottacode.net.SSLDummyContext;
import com.yottacode.pictogram.R;
import com.yottacode.pictogram.commonlibrary.R;
import com.yottacode.pictogram.action.ActionLog;
import com.yottacode.pictogram.dao.Device;
import com.yottacode.pictogram.dao.DeviceHelper;
......
......@@ -44,11 +44,7 @@
android:name="com.yottacode.pictogram.tabletlibrary.gui.login.SerialActivity"
android:label="@string/title_activity_serial"
android:screenOrientation="landscape" />
<activity
android:name="com.yottacode.pictogram.tabletlibrary.gui.login.LoginActivity"
android:exported="true"
android:label="@string/title_activity_login_activity_fragments"
android:screenOrientation="landscape" />
<activity
android:name="com.yottacode.pictogram.tabletlibrary.gui.communicator.VOCA"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
......
......@@ -3,5 +3,6 @@
<string name="app_name">Pictogram Communicator</string>
<string name="ilegal_user">There is not any supervisor named</string>
<string name="login_ilegaluser">Please, login as student or use Pictogram Supervisor </string>
<string name="activityAfterLogin" translatable="false">com.yottacode.pictogram.tabletlibrary.gui.communicator.VOCA</string>
</resources>
......@@ -6,7 +6,7 @@ android {
compileSdkVersion 24
buildToolsVersion '25.0.0'
defaultConfig {
applicationId "com.yottacode.supervisor"
applicationId "com.yottacode.pictogram.supervisor"
minSdkVersion 21
targetSdkVersion 22
versionCode 3
......@@ -14,7 +14,7 @@ android {
resValue "bool","NotifyAllwaysVisible","false"
resValue "string", "VersionManagerClass", "com.yottacode.pictogram.supervisor.net.VersionManager"
resValue "string","apk","pictograms.apk"
resValue "string","google_play_apk","https://play.google.com/store/apps/details?id=com.yottacode.supervisor"
resValue "string","google_play_apk","https://play.google.com/store/apps/details?id=com.yottacode.pictogram.supervisor"
// signingConfig signingConfigs.config
}
productFlavors {
......
......@@ -43,7 +43,7 @@
android:label="@string/title_activity_serial"
android:screenOrientation="landscape" />
<activity
android:name="com.yottacode.pictogram.tabletlibrary.gui.login.LoginActivity"
android:name=".gui.login.LoginActivity"
android:exported="true"
android:label="@string/title_activity_login_activity_fragments"
android:screenOrientation="landscape" />
......@@ -66,13 +66,6 @@
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="landscape" />
<activity
android:name="com.yottacode.pictogram.tabletlibrary.gui.communicator.EmptySceneActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@style/Theme.AppCompat"
android:screenOrientation="landscape" />
</application>
......
......@@ -11,18 +11,18 @@ import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.yottacode.pictogram.tabletlibrary.R;
import com.yottacode.pictogram.supervisor.R;
import com.yottacode.pictogram.tools.PCBcontext;
import java.util.Vector;
import static com.yottacode.pictogram.R.string.fa_certificate;
import static com.yottacode.pictogram.R.string.fa_flask;
import static com.yottacode.pictogram.R.string.fa_user_plus;
import static com.yottacode.pictogram.R.string.fa_question_circle;
import static com.yottacode.pictogram.supervisor.R.string.fa_certificate;
import static com.yottacode.pictogram.supervisor.R.string.fa_flask;
import static com.yottacode.pictogram.supervisor.R.string.fa_user_plus;
import static com.yottacode.pictogram.supervisor.R.string.fa_question_circle;
/**
* Creates a View for each student on the list with a photo and his/her name.
* It uses list_single.xml for the layout creation.
* It uses list_students.xmlml for the layout creation.
*/
public class CustomList extends ArrayAdapter<String>{
......@@ -38,7 +38,7 @@ public class CustomList extends ArrayAdapter<String>{
*/
public CustomList(Activity context,
String[] name_surname, Vector<Bitmap> images, String[] licenses) {
super(context, R.layout.list_single, name_surname);
super(context, R.layout.list_students, name_surname);
this.context = context;
this.name_surname = name_surname;
this.images = images;
......@@ -54,7 +54,7 @@ public class CustomList extends ArrayAdapter<String>{
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.list_single, null, true);
View rowView = inflater.inflate(R.layout.list_students, null, true);
Typeface fontAwesome = Typeface.createFromAsset( getContext().getAssets(), "fonts/fontawesome-webfont.ttf" );
// Name
......
package com.yottacode.pictogram.tabletlibrary.gui.login;
package com.yottacode.pictogram.supervisor.gui.login;
import android.annotation.TargetApi;
import android.content.Intent;
......@@ -14,7 +14,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.yottacode.pictogram.net.ImgDownloader;
import com.yottacode.pictogram.tabletlibrary.R;
import com.yottacode.pictogram.supervisor.R;
import com.yottacode.pictogram.tools.Img;
import com.yottacode.pictogram.tools.PCBcontext;
import com.yottacode.tools.GUITools;
......@@ -44,7 +44,7 @@ public class LoginActivity extends FragmentActivity {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(com.yottacode.pictogram.tabletlibrary.R.layout.activity_login);
setContentView(R.layout.activity_login);
// Enable logout button
......
......@@ -3,7 +3,7 @@
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
tools:context="com.yottacode.pictogram.tabletlibrary.gui.login.LoginActivity">
tools:context=".gui.login.LoginActivity">
<RelativeLayout
android:id="@+id/loginTopbarLayout"
......@@ -71,6 +71,14 @@
android:layout_below="@+id/loginTopbarLayout"
android:background="#eeeeee"
android:paddingTop="10dp">
<fragment
android:id="@+id/loginStudentGrid"
class="com.yottacode.pictogram.supervisor.gui.login.StudentFragmentGrid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
tools:layout="@layout/fragment_new_student" />
</FrameLayout>
......
......@@ -3,6 +3,7 @@
<string name="app_name">Pictogram Supervisor</string>
<string name="new_version_detail">Please, go to Google Play to download the new version </string>
<string name="login_ilegaluser">Utilice una cuenta de supervisor o bien ejecute Pictogram Communicator </string>
<string name="activityAfterLogin" translatable="false">com.yottacode.pictogram.supervisor.gui.login.LoginActivity</string>
<!---session-->
<string name="session_method">Método</string>
......
......@@ -110,13 +110,29 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/split-apk" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 24 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
......
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yottacode.pictogram.tabletlibrary">
package="com.yottacode.pictogram.tabletlibrary">
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name=".gui.communicator.EmptySceneActivity"></activity>
</application>
<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity
android:name="com.yottacode.pictogram.tabletlibrary.gui.communicator.EmptySceneActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="landscape" />
</application>
</manifest>
......@@ -119,7 +119,7 @@ public class VOCA extends Activity implements VocabularyTalk.iVocabularyListener
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// after a long inactivity, the pcbdb is discarded
if (!PCBcontext.is_user_logged()) {
......@@ -300,6 +300,7 @@ public class VOCA extends Activity implements VocabularyTalk.iVocabularyListener
@Override
protected void onResume() {
super.onResume();
onWindowFocusChanged(true);
if (!PCBcontext.getVocabulary().isVisibleAnyPicto()) {
finish();
......@@ -309,10 +310,8 @@ public class VOCA extends Activity implements VocabularyTalk.iVocabularyListener
if (!PCBcontext.getPcbdb().getCurrentUser().is_supervisor() && !isAppInLockTaskMode())
startLockTask();
requestWindowFeature(Window.FEATURE_NO_TITLE);
onWindowFocusChanged(true);
onWindowFocusChanged(true);
Log.i(LOG_TAG, "Resuming Pictogram Activity");
PCBcontext.setActivityContext(this);
setConfig();
......
......@@ -22,7 +22,6 @@ import com.yottacode.pictogram.dao.Device;
import com.yottacode.pictogram.dao.User;
import com.yottacode.pictogram.dao.UserLogin;
import com.yottacode.pictogram.tabletlibrary.R;
import com.yottacode.pictogram.tabletlibrary.gui.communicator.VOCA;
import com.yottacode.pictogram.tabletlibrary.net.NetServiceTablet;
import com.yottacode.pictogram.tools.PCBcontext;
......@@ -30,7 +29,6 @@ import org.json.JSONException;
import java.util.Vector;
/**
* A login screen that offers login via email/password.
*/
......@@ -87,11 +85,17 @@ public class SerialActivity extends Activity {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences settings = getSharedPreferences(Device.PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", users.elementAt(position).get_nickname_stu());
editor.putString("password", users.elementAt(position).get_pwd_stu());
editor.putString("username", users.elementAt(position).is_supervisor() ? users.elementAt(position).get_name_sup() : users.elementAt(position).get_name_stu());
editor.putString("password", users.elementAt(position).is_supervisor() ? users.elementAt(position).get_pwd_sup() : users.elementAt(position).get_pwd_stu());
editor.commit();
new UserLogin().login(users.elementAt(position).get_nickname_stu(),
users.elementAt(position).get_pwd_stu(),SerialActivity.this, VOCA.class, LoginActivity.class);
Class activityAfterLogin = null;
try {
activityAfterLogin = Class.forName(getString(R.string.activityAfterLogin));
new UserLogin().login(users.elementAt(position).get_nickname_stu(),
users.elementAt(position).get_pwd_stu(),SerialActivity.this, activityAfterLogin);
} catch (ClassNotFoundException e) {
Log.e(LOG_TAG,e.toString());
}
}
});
}
......@@ -130,7 +134,11 @@ public class SerialActivity extends Activity {
editor.putString("password", password);
editor.commit();
if (!username.equals("") && !password.equals(""))
new UserLogin().login(username, password, SerialActivity.this, VOCA.class, LoginActivity.class);
try {
new UserLogin().login(username, password, SerialActivity.this, Class.forName(getString(R.string.activityAfterLogin)));
} catch (ClassNotFoundException e) {
Log.e(LOG_TAG,e.toString());
}
}
});
......@@ -151,7 +159,11 @@ public class SerialActivity extends Activity {
mSerialViewPass.setText(password);
if (!username.equals("") && !password.equals("") && !getIntent().getBooleanExtra("resetPrevUser", true))
new UserLogin().login(username, password, SerialActivity.this, VOCA.class, LoginActivity.class);
try {
new UserLogin().login(username, password, SerialActivity.this, Class.forName(getString(R.string.activityAfterLogin)));
} catch (ClassNotFoundException e) {
Log.e(LOG_TAG,e.toString());
}
super.onStart();
try {
......
......@@ -17,8 +17,10 @@
android:orientation="horizontal"
android:paddingTop="20dp">
<LinearLayout
android:layout_weight=".60"
android:layout_weight=".70"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
......@@ -31,11 +33,13 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@color/VerdeApp"
android:paddingLeft="@dimen/content_padding"
android:text="@string/emptyVocabulary_msg"
android:textAppearance="@android:style/TextAppearance.Material.Large"
android:textColor="@color/white"
tools:layout_editor_absoluteX="33dp"
tools:layout_editor_absoluteY="75dp" />
tools:layout_editor_absoluteY="75dp"
tools:layout_marginLeft="@dimen/activity_horizontal_margin" />
<Button
......@@ -55,12 +59,10 @@
</LinearLayout>
<ImageView
android:layout_weight=".30"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="end"
android:layout_marginStart="30px"
android:elevation="1dp"
android:orientation="horizontal"
android:layout_gravity="left"
android:src="@drawable/emptyvocab" />
</LinearLayout>
......
......@@ -64,7 +64,7 @@
<EditText
android:id="@+id/serialpass"
android:layout_width="match_parent"
android:layout_width="350dp"
android:layout_height="wrap_content"
android:layout_below="@+id/serialmail"
android:layout_marginTop="25dp"
......@@ -111,9 +111,8 @@
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_width="350dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:orientation="horizontal"
android:id="@+id/firstlogin">
......@@ -123,20 +122,17 @@
android:layout_height="wrap_content"
android:background="@color/VerdeApp"
android:text="@string/firstlogin"
android:textAlignment="center"
android:textColor="@color/BlancoApp"
android:textSize="18sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_width="350dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:orientation="vertical"
android:id="@+id/supstulist">
<TextView
android:id="@+id/labelUser"
android:layout_width="match_parent"
......
......@@ -2,6 +2,7 @@
<string name="app_name">com.yottacode.pictogram.Tablet</string>
<string name="version_label">Versión:</string>
<string name="emptyVocabulary_msg">¡Tablero sin ningún pictograma visible! Visite Pictogram Web o use Pictogram Supervisor para añadir pictogramas</string>
<string name="activityAfterLogin" translatable="false">to be defined by Communicator or Supervisor</string>
<item name="maxInTape" type="integer">8</item>
<item name="maxInTape_big" type="integer">6</item>
</resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment