commit 849533a02b17d80bed36acec51af08b527e83c47 Author: vinayvekkot-cpm Date: Tue Dec 27 12:14:33 2016 +0530 Commit First New Commit First New diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..659e707 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..09e294a --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b15ecee --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8 + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..bcc15ed --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/.gitignore b/GSKMTOrange/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/GSKMTOrange/.gitignore @@ -0,0 +1 @@ +/build diff --git a/GSKMTOrange/build.gradle b/GSKMTOrange/build.gradle new file mode 100644 index 0000000..8adfd6d --- /dev/null +++ b/GSKMTOrange/build.gradle @@ -0,0 +1,38 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion "24.0.1" + + useLibrary 'org.apache.http.legacy' + + defaultConfig { + applicationId "cpm.com.gskmtorange" + minSdkVersion 15 + targetSdkVersion 22 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile files('libs/ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar') + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:24.2.1' + compile 'com.android.support:design:24.2.1' + testCompile 'junit:junit:4.12' + + compile 'com.google.android.gms:play-services-location:9.0.2' + compile 'com.google.android.gms:play-services-maps:9.0.2' + compile 'com.android.support:cardview-v7:24.2.1' +} diff --git a/GSKMTOrange/libs/ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar b/GSKMTOrange/libs/ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar new file mode 100644 index 0000000..9655bb8 Binary files /dev/null and b/GSKMTOrange/libs/ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar differ diff --git a/GSKMTOrange/proguard-rules.pro b/GSKMTOrange/proguard-rules.pro new file mode 100644 index 0000000..f13cc3c --- /dev/null +++ b/GSKMTOrange/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in E:\adt-bundle-windows-x86_64-20140702\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# 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/GSKMTOrange/src/androidTest/java/cpm/com/gskmtorange/ExampleInstrumentedTest.java b/GSKMTOrange/src/androidTest/java/cpm/com/gskmtorange/ExampleInstrumentedTest.java new file mode 100644 index 0000000..90399a6 --- /dev/null +++ b/GSKMTOrange/src/androidTest/java/cpm/com/gskmtorange/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package cpm.com.gskmtorange; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("cpm.com.gskmtorange", appContext.getPackageName()); + } +} diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a536e39 --- /dev/null +++ b/GSKMTOrange/src/main/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java new file mode 100644 index 0000000..f9c903c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java @@ -0,0 +1,639 @@ +package cpm.com.gskmtorange; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.annotation.TargetApi; +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.location.Location; +import android.location.LocationListener; +import android.preference.PreferenceManager; +import android.support.annotation.NonNull; +import android.support.design.widget.Snackbar; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.AppCompatActivity; + +import android.os.AsyncTask; + +import android.os.Build; +import android.os.Bundle; + +import android.text.TextUtils; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.inputmethod.EditorInfo; +import android.widget.ArrayAdapter; +import android.widget.AutoCompleteTextView; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.IOException; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.List; + +import cpm.com.gskmtorange.autoupdate.AutoUpdateActivity; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; + +import static android.Manifest.permission.READ_CONTACTS; +import static android.R.attr.versionCode; + +/** + * A login screen that offers login via userid/password. + */ +public class LoginActivity extends AppCompatActivity { + + TextView tv_version; + String app_ver; + + LoginGetterSetter lgs = null; + + static int counter = 1; + + private SharedPreferences preferences = null; + private SharedPreferences.Editor editor = null; + + /** + * Id to identity READ_CONTACTS permission request. + */ + private static final int REQUEST_READ_CONTACTS = 0; + + /** + * A dummy authentication store containing known user names and passwords. + * TODO: remove after connecting to a real authentication system. + */ + private static final String[] DUMMY_CREDENTIALS = new String[]{ + "foo@example.com:hello", "bar@example.com:world" + }; + + String lat = "0.0"; + String lon = "0.0"; + + // UI references. + private AutoCompleteTextView museridView; + private EditText mPasswordView; + private View mProgressView; + private View mLoginFormView; + + private String userid, password, p_username, p_password; + + private int versionCode; + + int eventType; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_login); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + editor = preferences.edit(); + + // Set up the login form. + museridView = (AutoCompleteTextView) findViewById(R.id.userid); + //populateAutoComplete(); + + mPasswordView = (EditText) findViewById(R.id.password); + mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { + @Override + public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) { + if (id == R.id.login || id == EditorInfo.IME_NULL) { + attemptLogin(); + return true; + } + return false; + } + }); + + try { + app_ver = String.valueOf(getPackageManager().getPackageInfo(getPackageName(), 0).versionName); + + // tv_version.setText("Version " + app_ver); + } catch (PackageManager.NameNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + Button museridSignInButton = (Button) findViewById(R.id.user_login_button); + museridSignInButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + attemptLogin(); + } + }); + + mLoginFormView = findViewById(R.id.login_form); + mProgressView = findViewById(R.id.login_progress); + + } + + /* private void populateAutoComplete() { + if (!mayRequestContacts()) { + return; + } + + getLoaderManager().initLoader(0, null, this); + }*/ + + private boolean mayRequestContacts() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + return true; + } + if (checkSelfPermission(READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) { + return true; + } + if (shouldShowRequestPermissionRationale(READ_CONTACTS)) { + Snackbar.make(museridView, R.string.permission_rationale, Snackbar.LENGTH_INDEFINITE) + .setAction(android.R.string.ok, new View.OnClickListener() { + @Override + @TargetApi(Build.VERSION_CODES.M) + public void onClick(View v) { + requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS); + } + }); + } else { + requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS); + } + return false; + } + + /** + * Callback received when a permissions request has been completed. + */ + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, + @NonNull int[] grantResults) { + if (requestCode == REQUEST_READ_CONTACTS) { + if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + //populateAutoComplete(); + } + } + } + + + /** + * Attempts to sign in or register the account specified by the login form. + * If there are form errors (invalid userid, missing fields, etc.), the + * errors are presented and no actual login attempt is made. + */ + private void attemptLogin() { + /* if (mAuthTask != null) { + return; + } +*/ + // Reset errors. + museridView.setError(null); + mPasswordView.setError(null); + + // Store values at the time of the login attempt. + userid = museridView.getText().toString(); + password = mPasswordView.getText().toString(); + + boolean cancel = false; + View focusView = null; + + // Check for a valid password, if the user entered one. + if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) { + mPasswordView.setError(getString(R.string.error_invalid_password)); + focusView = mPasswordView; + cancel = true; + } + + // Check for a valid userid address. + if (TextUtils.isEmpty(userid)) { + museridView.setError(getString(R.string.error_field_required)); + focusView = museridView; + cancel = true; + } /*else if (!isuseridValid(userid)) { + museridView.setError(getString(R.string.error_invalid_userid)); + focusView = museridView; + cancel = true; + }*/ + + if (cancel) { + // There was an error; don't attempt login and focus the first + // form field with an error. + focusView.requestFocus(); + } else { + // Show a progress spinner, and kick off a background task to + // perform the user login attempt. + //showProgress(true); + /* mAuthTask = new UserLoginTask(userid, password); + mAuthTask.execute((Void) null);*/ + + new AuthenticateTask().execute(); + + } + } + + private boolean isuseridValid(String userid) { + //TODO: Replace this with your own logic + return userid.contains("@"); + } + + private boolean isPasswordValid(String password) { + //TODO: Replace this with your own logic + return password.length() > 4; + } + + /** + * Shows the progress UI and hides the login form. + */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) + private void showProgress(final boolean show) { + // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow + // for very easy animations. If available, use these APIs to fade-in + // the progress spinner. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { + int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime); + + mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); + mLoginFormView.animate().setDuration(shortAnimTime).alpha( + show ? 0 : 1).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); + } + }); + + mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); + mProgressView.animate().setDuration(shortAnimTime).alpha( + show ? 1 : 0).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); + } + }); + } else { + // The ViewPropertyAnimator APIs are not available, so simply show + // and hide the relevant UI components. + mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); + mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); + } + } + + /* @Override + public Loader onCreateLoader(int i, Bundle bundle) { + return new CursorLoader(this, + // Retrieve data rows for the device user's 'profile' contact. + Uri.withAppendedPath(ContactsContract.Profile.CONTENT_URI, + ContactsContract.Contacts.Data.CONTENT_DIRECTORY), ProfileQuery.PROJECTION, + + // Select only userid addresses. + ContactsContract.Contacts.Data.MIMETYPE + + " = ?", new String[]{ContactsContract.CommonDataKinds.userid + .CONTENT_ITEM_TYPE}, + + // Show primary userid addresses first. Note that there won't be + // a primary userid address if the user hasn't specified one. + ContactsContract.Contacts.Data.IS_PRIMARY + " DESC"); + } + + @Override + public void onLoadFinished(Loader cursorLoader, Cursor cursor) { + List userids = new ArrayList<>(); + cursor.moveToFirst(); + while (!cursor.isAfterLast()) { + userids.add(cursor.getString(ProfileQuery.ADDRESS)); + cursor.moveToNext(); + } + + adduseridsToAutoComplete(userids); + } + + @Override + public void onLoaderReset(Loader cursorLoader) { + + }*/ + + private void adduseridsToAutoComplete(List useridAddressCollection) { + //Create adapter to tell the AutoCompleteTextView what to show in its dropdown list. + ArrayAdapter adapter = + new ArrayAdapter<>(LoginActivity.this, + android.R.layout.simple_dropdown_item_1line, useridAddressCollection); + + museridView.setAdapter(adapter); + } + + + /* private interface ProfileQuery { + String[] PROJECTION = { + ContactsContract.CommonDataKinds.userid.ADDRESS, + ContactsContract.CommonDataKinds.userid.IS_PRIMARY, + }; + + int ADDRESS = 0; + int IS_PRIMARY = 1; + }*/ + + /** + * Represents an asynchronous login/registration task used to authenticate + * the user. + */ + + private class AuthenticateTask extends AsyncTask { + private ProgressDialog dialog = null; + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new ProgressDialog(LoginActivity.this); + dialog.setTitle("Login"); + dialog.setMessage("Authenticating...."); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + protected String doInBackground(Void... params) { + + + try { + + versionCode = getPackageManager().getPackageInfo( + getPackageName(), 0).versionCode; + + String userauth_xml = "[DATA]" + "[USER_DATA][USER_ID]" + + userid + "[/USER_ID]" + "[PASSWORD]" + password + + "[/PASSWORD]" + "[IN_TIME]" + getCurrentTime() + + "[/IN_TIME]" + "[LATITUDE]" + lat + + "[/LATITUDE]" + "[LONGITUDE]" + lon + + "[/LONGITUDE]" + "[APP_VERSION]" + app_ver + + "[/APP_VERSION]" + "[ATT_MODE]OnLine[/ATT_MODE]" + + "[NETWORK_STATUS]" + "LoginStatus" + + "[/NETWORK_STATUS]" + "[/USER_DATA][/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_LOGIN); + request.addProperty("onXML", userauth_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + + androidHttpTransport.call(CommonString.SOAP_ACTION_LOGIN, + envelope); + + Object result = (Object) envelope.getResponse(); + + if (result.toString() + .equalsIgnoreCase(CommonString.KEY_FAILURE)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_FAILURE); + } + }); + + } else if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_FALSE); + } + }); + + } else if (result.toString().equalsIgnoreCase( + CommonString.KEY_CHANGED)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_CHANGED); + } + }); + + } else { + + XmlPullParserFactory factory = XmlPullParserFactory + .newInstance(); + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + final FailureGetterSetter failureGetterSetter = XMLHandlers + .failureXMLHandler(xpp, eventType); + + if (failureGetterSetter.getStatus().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, CommonString.METHOD_LOGIN + + failureGetterSetter.getErrorMsg(), + "login", null);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.METHOD_LOGIN + + failureGetterSetter.getErrorMsg()); + } + }); + } else { + + try { + // For String source + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + lgs = XMLHandlers.loginXMLHandler(xpp, eventType); + + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + // PUT IN PREFERENCES + editor.putString(CommonString.KEY_USERNAME, userid); + editor.putString(CommonString.KEY_PASSWORD, password); + editor.putString(CommonString.KEY_VERSION, lgs.getAPP_VERSION()); + + editor.putString(CommonString.KEY_PATH, lgs.getAPP_PATH()); + editor.putString(CommonString.KEY_DATE, lgs.getCURRENTDATE()); + + editor.commit(); + + return CommonString.KEY_SUCCESS; + + } + } + + return ""; + + } catch (MalformedURLException e) { + + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, AlertMessage.MESSAGE_EXCEPTION, + "acra_login", e);*/ + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + + } catch (IOException e) { + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, + AlertMessage.MESSAGE_SOCKETEXCEPTION, "socket_login", e);*/ + + counter++; + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + if (counter < 3) { + new AuthenticateTask().execute(); + } else { + showAlert(CommonString.MESSAGE_SOCKETEXCEPTION); + counter = 1; + } + } + }); + } catch (Exception e) { + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, AlertMessage.MESSAGE_EXCEPTION, + "acra_login", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } + return ""; + + } + + @Override + protected void onPostExecute(String result) { + + super.onPostExecute(result); + + if (result.equals(CommonString.KEY_SUCCESS)) { + +// database.open(); + if (preferences.getString(CommonString.KEY_VERSION, "").equals( + Integer.toString(versionCode))) { + + if(preferences.getString(CommonString.KEY_LANGUAGE, "").equals("")){ + + Intent intent = new Intent(getBaseContext(), + SelectLanguageActivity.class); + + intent.putExtra(CommonString.KEY_LOGIN_DATA, lgs); + startActivity(intent); + + finish(); + } + else{ + + Intent intent = new Intent(getBaseContext(), + MainActivity.class); + startActivity(intent); + + finish(); + } + + + } else { + Intent intent = new Intent(getBaseContext(), + AutoUpdateActivity.class); + + intent.putExtra(CommonString.KEY_PATH, + preferences.getString(CommonString.KEY_PATH, "")); + startActivity(intent); + finish(); + } + + } + + dialog.dismiss(); + } + + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + public String getCurrentTime() { + + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); + String intime = formatter.format(m_cal.getTime()); + + /* String intime = m_cal.get(Calendar.HOUR_OF_DAY) + ":" + + m_cal.get(Calendar.MINUTE) + ":" + m_cal.get(Calendar.SECOND);*/ + + return intime; + + } + + +} + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java new file mode 100644 index 0000000..77f525b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java @@ -0,0 +1,177 @@ +package cpm.com.gskmtorange; + +import android.content.SharedPreferences; +import android.graphics.Bitmap; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.view.LayoutInflater; +import android.view.View; +import android.support.design.widget.NavigationView; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.ImageView; +import android.widget.TextView; + +import cpm.com.gskmtorange.constant.CommonString; + +public class MainActivity extends AppCompatActivity + implements NavigationView.OnNavigationItemSelectedListener { + + WebView webView; + ImageView imageView; + + private SharedPreferences preferences = null; + + String user_name, user_type; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + imageView = (ImageView) findViewById(R.id.img_main); + + webView = (WebView) findViewById(R.id.webview); + + String url = preferences.getString(CommonString.KEY_NOTICE_BOARD_LINK,""); + user_name = preferences.getString(CommonString.KEY_USERNAME, null); + //user_type = preferences.getString(CommonString.KEY_USER_TYPE, null); + + webView.setWebViewClient(new MyWebViewClient()); + + webView.getSettings().setJavaScriptEnabled(true); + + if(!url.equals("")){ + + webView.loadUrl(url); + + } + + /* FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); +*/ + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( + this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawer.setDrawerListener(toggle); + toggle.syncState(); + + NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); + + View headerView = LayoutInflater.from(this).inflate(R.layout.nav_header_main, navigationView, false); + + TextView tv_username = (TextView) headerView.findViewById(R.id.nav_user_name); + //tv_usertype = (TextView) headerView.findViewById(R.id.nav_user_type); + + tv_username.setText(user_name); + //tv_usertype.setText(user_type); + navigationView.addHeaderView(headerView); + + navigationView.setNavigationItemSelectedListener(this); + } + + @Override + public void onBackPressed() { + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + if (drawer.isDrawerOpen(GravityCompat.START)) { + drawer.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @SuppressWarnings("StatementWithEmptyBody") + @Override + public boolean onNavigationItemSelected(MenuItem item) { + // Handle navigation view item clicks here. + int id = item.getItemId(); + + if (id == R.id.nav_route_plan) { + // Handle the camera action + } else if (id == R.id.nav_download) { + + } else if (id == R.id.nav_upload) { + + } else if (id == R.id.nav_geotag) { + + } else if (id == R.id.nav_exit) { + + } else if (id == R.id.nav_services) { + + }else if (id == R.id.nav_setting) { + + } + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + return true; + } + + private class MyWebViewClient extends WebViewClient { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + /* progress.setVisibility(View.GONE); + WebViewActivity.this.progress.setProgress(100);*/ + imageView.setVisibility(View.INVISIBLE); + webView.setVisibility(View.VISIBLE); + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + /* progress.setVisibility(View.VISIBLE); + WebViewActivity.this.progress.setProgress(0);*/ + super.onPageStarted(view, url, favicon); + } + + + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java new file mode 100644 index 0000000..ff4fa78 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java @@ -0,0 +1,149 @@ +package cpm.com.gskmtorange; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Color; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.widget.Button; + +import java.util.ArrayList; +import java.util.Locale; + +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; + +public class SelectLanguageActivity extends AppCompatActivity implements View.OnClickListener{ + + Button btn_lang_1, btn_lang_2; + + private SharedPreferences preferences = null; + private SharedPreferences.Editor editor = null; + + LoginGetterSetter login_data; + ArrayList language; + + boolean selected_flag = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_select_language); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + editor = preferences.edit(); + + btn_lang_1 = (Button) findViewById(R.id.btn_language_one); + btn_lang_2 = (Button) findViewById(R.id.btn_language_two); + + + login_data = (LoginGetterSetter) getIntent().getSerializableExtra(CommonString.KEY_LOGIN_DATA); + language = login_data.getCULTURE_NAME(); + + if(language.size()>1){ + + btn_lang_1.setText(language.get(0)); + btn_lang_2.setText(language.get(1)); + + btn_lang_1.setOnClickListener(this); + btn_lang_2.setOnClickListener(this); + } + + + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + if(selected_flag){ + Intent intent = new Intent(getBaseContext(), + MainActivity.class); + + intent.putExtra(CommonString.KEY_LOGIN_DATA, login_data); + startActivity(intent); + } + else { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + } + }); + } + + @Override + public void onClick(View view) { + + int id = view.getId(); + + switch (id){ + + case R.id.btn_language_one: + + selected_flag = true; + + updateResources(getApplicationContext(),language.get(0)); + + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + btn_lang_2.setBackgroundColor(getResources().getColor(R.color.grey_background)); + + editor.putString(CommonString.KEY_LANGUAGE, language.get(0)); + editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, login_data.getNOTICE_URL().get(0)); + editor.commit(); + + break; + + case R.id.btn_language_two: + + selected_flag = true; + + updateResources(getApplicationContext(),language.get(1)); + + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.grey_background)); + btn_lang_2.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + + editor.putString(CommonString.KEY_LANGUAGE, language.get(1)); + editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, login_data.getNOTICE_URL().get(1)); + editor.commit(); + + break; + } + } + + private static boolean updateResources(Context context, String language) { + + String lang ; + + if(language.equals("English")){ + lang = "EN"; + } + else if(language.equals("UAE")) { + lang = "AR"; + } + else { + lang = "TR"; + } + + Locale locale = new Locale(lang); + Locale.setDefault(locale); + + Resources resources = context.getResources(); + + Configuration configuration = resources.getConfiguration(); + configuration.locale = locale; + + resources.updateConfiguration(configuration, resources.getDisplayMetrics()); + + return true; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java new file mode 100644 index 0000000..1fecee1 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java @@ -0,0 +1,86 @@ +package cpm.com.gskmtorange; + +import android.content.Intent; +import android.graphics.PixelFormat; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.Window; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; + +public class SplashScreenActivity extends AppCompatActivity { + + private static int SPLASH_TIME_OUT = 3000; + + public void onAttachedToWindow() { + super.onAttachedToWindow(); + Window window = getWindow(); + window.setFormat(PixelFormat.RGBA_8888); + } + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_splash_screen); + + StartAnimations(); + + new Handler().postDelayed(new Runnable() { + + /* + * Showing splash screen with a timer. This will be useful when you + * want to show case your app logo / company + */ + + @Override + public void run() { + // This method will be executed once the timer is over + // Start your app main activity + + /* SharedPreferences sharedpreferences = getSharedPreferences("MyPref", Context.MODE_PRIVATE); + + boolean isLoggedIn = sharedpreferences.getBoolean("isLoggedIn", false); + + if (isLoggedIn) { + + Intent i = new Intent(SplashScreenActivity.this, LoginActivity.class); + startActivity(i); + } else { + + Intent i = new Intent(SplashScreenActivity.this, LoginActivity.class); + startActivity(i); + + }*/ + + + // close this activity + + Intent i = new Intent(SplashScreenActivity.this, LoginActivity.class); + startActivity(i); + + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + + finish(); + } + }, SPLASH_TIME_OUT); + + } + private void StartAnimations() { + Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); + anim.reset(); + LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay); + l.clearAnimation(); + l.startAnimation(anim); + + anim = AnimationUtils.loadAnimation(this, R.anim.translate); + anim.reset(); + ImageView iv = (ImageView) findViewById(R.id.logo); + iv.clearAnimation(); + iv.startAnimation(anim); + + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/autoupdate/AutoUpdateActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/autoupdate/AutoUpdateActivity.java new file mode 100644 index 0000000..bcd411c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/autoupdate/AutoUpdateActivity.java @@ -0,0 +1,282 @@ +package cpm.com.gskmtorange.autoupdate; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.widget.ProgressBar; +import android.widget.TextView; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.DecimalFormat; + +import cpm.com.gskmtorange.LoginActivity; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; + +public class AutoUpdateActivity extends AppCompatActivity { + + String versionCode; + int length; + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private Data data; + + String path = "", p, s; + + ProgressBar progressBar; + private boolean status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login); + Intent intent = getIntent(); + + path = intent.getStringExtra(CommonString.KEY_PATH); + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Parinaam"); + builder.setMessage("New Update Available.") + .setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + SharedPreferences preferences = PreferenceManager + .getDefaultSharedPreferences(AutoUpdateActivity.this); + SharedPreferences.Editor editor = preferences.edit(); + editor.clear(); + editor.commit(); + + /*new File( + "/data/data/com.cpm.gsk_mt/databases/GTMT_DATABASE") + .delete();*/ + + new DownloadTask(AutoUpdateActivity.this).execute(); + + } + }); + + AlertDialog alert = builder.create(); + + alert.show(); + + } + + private class DownloadTask extends AsyncTask { + + private Context context; + + DownloadTask(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom_layout); + dialog.setTitle("Download"); + dialog.setCancelable(false); + dialog.show(); + + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + + } + + @Override + protected String doInBackground(Void... params) { + + + try { + data = new Data(); + data.name = "Downloading Application"; + publishProgress(data); + + versionCode = getPackageManager().getPackageInfo( + getPackageName(), 0).versionName; + + data.name = "Upgraditing Version : " + versionCode; + publishProgress(data); + + // download application + URL url = new URL(path); + HttpURLConnection c = (HttpURLConnection) url.openConnection(); + c.setRequestMethod("GET"); + // c.setDoOutput(true); + c.getResponseCode(); + c.connect(); + length = c.getContentLength(); + + String size = new DecimalFormat("##.##") + .format((double) ((double) length / 1024) / 1024) + + " MB"; + + String PATH = Environment.getExternalStorageDirectory() + + "/download/"; + File file = new File(PATH); + file.mkdirs(); + File outputFile = new File(file, "app.apk"); + FileOutputStream fos = new FileOutputStream(outputFile); + + InputStream is = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is.read(buffer)) != -1) { + + bytes = (bytes + len1); + + s = new DecimalFormat("##.##") + .format((double) ((double) (bytes / 1024)) / 1024); + + p = s.length() == 3 ? s + "0" : s; + + p = p + " MB"; + data.value = (int) ((double) (((double) bytes) / length) * 100); + + data.name = "Download " + p + "/" + size; + publishProgress(data); + + fos.write(buffer, 0, len1); + + } + fos.close(); + is.close(); + + return CommonString.KEY_SUCCESS; + + } catch (PackageManager.NameNotFoundException e) { + // TODO Auto-generated catch block + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_EXCEPTION, "download", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } catch (MalformedURLException e) { + + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_EXCEPTION, "download", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + + } catch (IOException e) { + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_SOCKETEXCEPTION, "update", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.MESSAGE_SOCKETEXCEPTION); + } + }); + } catch (Exception e) { + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_EXCEPTION, "download", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } + + return ""; + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + + } + + @Override + protected void onPostExecute(String result) { + + super.onPostExecute(result); + dialog.dismiss(); + + if (result.equals(CommonString.KEY_SUCCESS)) { + Intent i = new Intent(Intent.ACTION_VIEW); + i.setDataAndType(Uri.fromFile(new File(Environment + .getExternalStorageDirectory() + + "/download/" + + "app.apk")), + "application/vnd.android.package-archive"); + startActivity(i); + + AutoUpdateActivity.this.finish(); + } + + } + + } + + class Data { + int value; + String name; + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(AutoUpdateActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java new file mode 100644 index 0000000..94fde19 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java @@ -0,0 +1,49 @@ +package cpm.com.gskmtorange.constant; + +/** + * Created by yadavendras on 19-12-2016. + */ + +public class CommonString { + +// webservice constants + + + // preferenec keys + public static final String KEY_USERNAME = "username"; + public static final String KEY_PASSWORD = "password"; + public static final String KEY_DATE = "date"; + + public static final String KEY_PATH = "path"; + public static final String KEY_VERSION = "APP_VERSION"; + + public static final String KEY_LANGUAGE = "LANGUAGE"; + public static final String KEY_NOTICE_BOARD_LINK = "NOTICE_BOARD_LINK"; + public static final String KEY_LOGIN_DATA = "LOGIN_DATA"; + + // webservice constants + + public static final String KEY_SUCCESS = "Success"; + public static final String KEY_FAILURE = "Failure"; + public static final String KEY_FALSE = "False"; + public static final String KEY_CHANGED = "Changed"; + + public static final String KEY_NO_DATA = "NODATA"; + + public static String URL = "http://gskme.parinaam.in/Gskwebservice.asmx"; + public static final String NAMESPACE = "http://tempuri.org/"; + public static final String METHOD_LOGIN = "UserLoginDetail"; + public static final String SOAP_ACTION_LOGIN = "http://tempuri.org/" + + METHOD_LOGIN; + + //Alert Messages + + public static final String MESSAGE_FAILURE = "Server Error.Please Access After Some Time"; + public static final String MESSAGE_FALSE = "Invalid User"; + public static final String MESSAGE_CHANGED = "Invalid UserId Or Password / Password Has Been Changed."; + + public static final String MESSAGE_EXCEPTION = "Problem Occured : Report The Problem To Parinaam "; + public static final String MESSAGE_SOCKETEXCEPTION = "Network Communication Failure. Check Your Network Connection"; + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/FailureGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/FailureGetterSetter.java new file mode 100644 index 0000000..f3eb242 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/FailureGetterSetter.java @@ -0,0 +1,24 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +public class FailureGetterSetter { + + private String status="",errorMsg; + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/LoginGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/LoginGetterSetter.java new file mode 100644 index 0000000..c920e0f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/LoginGetterSetter.java @@ -0,0 +1,74 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.io.Serializable; +import java.util.ArrayList; + +/** + * Created by yadavendras on 21-12-2016. + */ + +public class LoginGetterSetter implements Serializable{ + + String RIGHT_NAME, APP_VERSION, APP_PATH, CURRENTDATE; + + ArrayList CULTURE_ID = new ArrayList<>(); + ArrayList CULTURE_NAME = new ArrayList<>(); + ArrayList NOTICE_URL = new ArrayList<>(); + + + public String getRIGHT_NAME() { + return RIGHT_NAME; + } + + public void setRIGHT_NAME(String rIGHT_NAME) { + RIGHT_NAME = rIGHT_NAME; + } + + public String getAPP_VERSION() { + return APP_VERSION; + } + + public void setAPP_VERSION(String aPP_VERSION) { + APP_VERSION = aPP_VERSION; + } + + public String getAPP_PATH() { + return APP_PATH; + } + + public void setAPP_PATH(String aPP_PATH) { + APP_PATH = aPP_PATH; + } + + public String getCURRENTDATE() { + return CURRENTDATE; + } + + public void setCURRENTDATE(String cURRENTDATE) { + CURRENTDATE = cURRENTDATE; + } + + public ArrayList getCULTURE_ID() { + return CULTURE_ID; + } + + public void setCULTURE_ID(String CULTURE_ID) { + this.CULTURE_ID.add(CULTURE_ID); + } + + public ArrayList getCULTURE_NAME() { + return CULTURE_NAME; + } + + public void setCULTURE_NAME(String CULTURE_NAME) { + this.CULTURE_NAME.add(CULTURE_NAME); + } + + public ArrayList getNOTICE_URL() { + return NOTICE_URL; + } + + public void setNOTICE_URL(String NOTICE_URL) { + this.NOTICE_URL.add(NOTICE_URL); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java new file mode 100644 index 0000000..6de86d7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java @@ -0,0 +1,88 @@ +package cpm.com.gskmtorange.xmlHandlers; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.IOException; + +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; + +/** + * Created by yadavendras on 21-12-2016. + */ + +public class XMLHandlers { + + + // FAILURE XML HANDLER + public static FailureGetterSetter failureXMLHandler(XmlPullParser xpp, + int eventType) { + FailureGetterSetter failureGetterSetter = new FailureGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("STATUS")) { + failureGetterSetter.setStatus(xpp.nextText()); + } + if (xpp.getName().equals("ERRORMSG")) { + failureGetterSetter.setErrorMsg(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return failureGetterSetter; + } + + // LOGIN XML HANDLER + public static LoginGetterSetter loginXMLHandler(XmlPullParser xpp, + int eventType) { + LoginGetterSetter lgs = new LoginGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("RIGHT_NAME")) { + lgs.setRIGHT_NAME(xpp.nextText()); + } + if (xpp.getName().equals("APP_VERSION")) { + lgs.setAPP_VERSION(xpp.nextText()); + } + if (xpp.getName().equals("APP_PATH")) { + lgs.setAPP_PATH(xpp.nextText()); + } + if (xpp.getName().equals("CURRENTDATE")) { + lgs.setCURRENTDATE(xpp.nextText()); + } + if (xpp.getName().equals("CULTURE_ID")) { + lgs.setCULTURE_ID(xpp.nextText()); + } + if (xpp.getName().equals("CULTURE_NAME")) { + lgs.setCULTURE_NAME(xpp.nextText()); + } + if (xpp.getName().equals("NOTICE_URL")) { + lgs.setNOTICE_URL(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return lgs; + } +} diff --git a/GSKMTOrange/src/main/res/anim/activity_back_in.xml b/GSKMTOrange/src/main/res/anim/activity_back_in.xml new file mode 100644 index 0000000..c1704a7 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_back_in.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/activity_back_out.xml b/GSKMTOrange/src/main/res/anim/activity_back_out.xml new file mode 100644 index 0000000..2d13167 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_back_out.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/activity_in.xml b/GSKMTOrange/src/main/res/anim/activity_in.xml new file mode 100644 index 0000000..efb4b90 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_in.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/activity_out.xml b/GSKMTOrange/src/main/res/anim/activity_out.xml new file mode 100644 index 0000000..aa791c5 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_out.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/alpha.xml b/GSKMTOrange/src/main/res/anim/alpha.xml new file mode 100644 index 0000000..62f84a6 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/alpha.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab2_hide.xml b/GSKMTOrange/src/main/res/anim/fab2_hide.xml new file mode 100644 index 0000000..e85bcbf --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab2_hide.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab2_show.xml b/GSKMTOrange/src/main/res/anim/fab2_show.xml new file mode 100644 index 0000000..eef4b68 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab2_show.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab_hide.xml b/GSKMTOrange/src/main/res/anim/fab_hide.xml new file mode 100644 index 0000000..d533454 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab_hide.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab_show.xml b/GSKMTOrange/src/main/res/anim/fab_show.xml new file mode 100644 index 0000000..2473127 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab_show.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/slide_in_bottom.xml b/GSKMTOrange/src/main/res/anim/slide_in_bottom.xml new file mode 100644 index 0000000..e1d5802 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/slide_in_bottom.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/translate.xml b/GSKMTOrange/src/main/res/anim/translate.xml new file mode 100644 index 0000000..53b20fe --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/translate.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_camera.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_camera.xml new file mode 100644 index 0000000..0d9ea10 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_camera.xml @@ -0,0 +1,12 @@ + + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_gallery.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_gallery.xml new file mode 100644 index 0000000..f6872c4 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_gallery.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_manage.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_manage.xml new file mode 100644 index 0000000..c1be60b --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_manage.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_send.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_send.xml new file mode 100644 index 0000000..00c668c --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_send.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_share.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_share.xml new file mode 100644 index 0000000..a28fb9e --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_slideshow.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_slideshow.xml new file mode 100644 index 0000000..209aa64 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_slideshow.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable/gradient_background.xml b/GSKMTOrange/src/main/res/drawable/gradient_background.xml new file mode 100644 index 0000000..e3dcf2c --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/gradient_background.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/gsk_logo.png b/GSKMTOrange/src/main/res/drawable/gsk_logo.png new file mode 100644 index 0000000..e2ea301 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/gsk_logo.png differ diff --git a/GSKMTOrange/src/main/res/drawable/parinaam_logo.png b/GSKMTOrange/src/main/res/drawable/parinaam_logo.png new file mode 100644 index 0000000..939a379 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/parinaam_logo.png differ diff --git a/GSKMTOrange/src/main/res/drawable/right_arrow.png b/GSKMTOrange/src/main/res/drawable/right_arrow.png new file mode 100644 index 0000000..55c4173 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/right_arrow.png differ diff --git a/GSKMTOrange/src/main/res/drawable/side_nav_bar.xml b/GSKMTOrange/src/main/res/drawable/side_nav_bar.xml new file mode 100644 index 0000000..3cb0262 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/side_nav_bar.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_auto_update.xml b/GSKMTOrange/src/main/res/layout/activity_auto_update.xml new file mode 100644 index 0000000..0a8f923 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_auto_update.xml @@ -0,0 +1,13 @@ + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_login.xml b/GSKMTOrange/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000..4131c23 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_login.xml @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +