Android Open Source - utexas-utilities Login Web View Client






From Project

Back to project page utexas-utilities.

License

The source code is released under:

Apache License

If you think the Android project utexas-utilities listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.nasageek.utexasutilities;
/*w  w w .ja  v a 2 s  . c om*/
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.webkit.CookieManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

import com.nasageek.utexasutilities.activities.UTilitiesActivity;
import com.nasageek.utexasutilities.fragments.BlackboardFragment;

import static com.nasageek.utexasutilities.UTilitiesApplication.BB_AUTH_COOKIE_KEY;
import static com.nasageek.utexasutilities.UTilitiesApplication.PNA_AUTH_COOKIE_KEY;
import static com.nasageek.utexasutilities.UTilitiesApplication.UTD_AUTH_COOKIE_KEY;

public class LoginWebViewClient extends WebViewClient {

    private Context context;
    private String nextActivity;
    private char service;

    public LoginWebViewClient(Context con, String nextActivity, char service) {
        super();
        this.context = con;
        this.nextActivity = nextActivity;
        this.service = service;
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        String authCookie = "";
        String cookies = "";
        switch (service) {
            case 'z':
                ((Activity) context).finish();
                break;
            case 'p':
                if (url.contains("pna.utexas.edu")) {
                    cookies = CookieManager.getInstance().getCookie("https://pna.utexas.edu");
                    if (cookies != null && cookies.contains("AUTHCOOKIE=")) {
                        for (String s : cookies.split("; ")) {
                            if (s.startsWith("AUTHCOOKIE=")) {
                                authCookie = s.substring(11);
                                break;
                            }
                        }
                    }
                    if (!authCookie.equals("")) {
                        AuthCookie pnaAuthCookie = ((UTilitiesApplication) ((Activity) context)
                                .getApplication()).getAuthCookie(PNA_AUTH_COOKIE_KEY);
                        pnaAuthCookie.setAuthCookieVal(authCookie);
                        continueToActivity("UT PNA");
                        return;
                    }
                }
                break;

            case 'b':
                if (url.contains(BlackboardFragment.BLACKBOARD_DOMAIN_NOPROT)) {
                    cookies = CookieManager.getInstance().getCookie(
                            BlackboardFragment.BLACKBOARD_DOMAIN);

                    if (url.equals(BlackboardFragment.BLACKBOARD_DOMAIN
                            + "/webapps/portal/frameset.jsp")
                            && cookies != null) {
                        for (String s : cookies.split("; ")) {
                            if (s.startsWith("s_session_id=")) {
                                authCookie = s.substring(13);
                                break;
                            }
                        }
                    }
                    if (!authCookie.equals("")) {
                        AuthCookie bbAuthCookie = ((UTilitiesApplication) ((Activity) context)
                                .getApplication()).getAuthCookie(BB_AUTH_COOKIE_KEY);
                        bbAuthCookie.setAuthCookieVal(authCookie);
                        continueToActivity("Blackboard");
                        return;
                    }
                }
                break;
            case 'u':
                if (url.contains("utexas.edu")) {
                    cookies = CookieManager.getInstance().getCookie("https://login.utexas.edu");
                    if (cookies != null) {
                        for (String s : cookies.split("; ")) {
                            if (s.startsWith("utlogin-prod=")) {
                                authCookie = s.substring(13);
                                break;
                            }
                        }
                    }
                    if (!authCookie.equals("")
                            && url.equals("https://www.utexas.edu/")) {
                        AuthCookie utdAuthCookie = ((UTilitiesApplication) ((Activity) context)
                                .getApplication()).getAuthCookie(UTD_AUTH_COOKIE_KEY);
                        utdAuthCookie.setAuthCookieVal(authCookie);
                        continueToActivity("UTLogin");
                        return;
                    }
                }
                break;
        }
    }

    private void continueToActivity(String service) {
        Intent intent = null;
        try {
            intent = new Intent(context, Class.forName(nextActivity));
            Toast.makeText(context, "You're now logged in to " + service, Toast.LENGTH_SHORT)
                    .show();
        } catch (ClassNotFoundException e) {

            e.printStackTrace();
            intent = new Intent(context, UTilitiesActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            Toast.makeText(context, "Your attempt to log in went terribly wrong",
                    Toast.LENGTH_SHORT).show();
        }
        context.startActivity(intent);
        CookieManager.getInstance().removeAllCookie();
        return;
    }
}




Java Source Code List

com.google.maps.android.ui.MyIconGenerator.java
com.mapsaurus.paneslayout.ActivityDelegate.java
com.mapsaurus.paneslayout.FragmentLauncher.java
com.mapsaurus.paneslayout.MenuItemWrapper.java
com.mapsaurus.paneslayout.MySlidingPaneLayout.java
com.mapsaurus.paneslayout.PanesActivity.java
com.mapsaurus.paneslayout.PanesLayout.java
com.mapsaurus.paneslayout.PanesSizer.java
com.mapsaurus.paneslayout.PhoneDelegate.java
com.mapsaurus.paneslayout.SimpleScrollView.java
com.mapsaurus.paneslayout.TabletDelegate.java
com.nasageek.utexasutilities.AsyncTask.java
com.nasageek.utexasutilities.AttachmentDownloadService.java
com.nasageek.utexasutilities.AuthCookie.java
com.nasageek.utexasutilities.BlackboardDashboardXmlParser.java
com.nasageek.utexasutilities.BuildingDatabase.java
com.nasageek.utexasutilities.BuildingProvider.java
com.nasageek.utexasutilities.BuildingSaxHandler.java
com.nasageek.utexasutilities.ChangeLog.java
com.nasageek.utexasutilities.ChangeableContextTask.java
com.nasageek.utexasutilities.CourseMapSaxHandler.java
com.nasageek.utexasutilities.FixedListPreference.java
com.nasageek.utexasutilities.LoginWebViewClient.java
com.nasageek.utexasutilities.MarkerManager.java
com.nasageek.utexasutilities.MyPair.java
com.nasageek.utexasutilities.MyScrollView.java
com.nasageek.utexasutilities.PlacemarkSaxHandler.java
com.nasageek.utexasutilities.PnaAuthCookie.java
com.nasageek.utexasutilities.RouteSaxHandler.java
com.nasageek.utexasutilities.SecurePreferences.java
com.nasageek.utexasutilities.TempLoginException.java
com.nasageek.utexasutilities.UTilitiesApplication.java
com.nasageek.utexasutilities.UtdAuthCookie.java
com.nasageek.utexasutilities.Utility.java
com.nasageek.utexasutilities.WrappedViewPager.java
com.nasageek.utexasutilities.WrappingSlidingDrawer.java
com.nasageek.utexasutilities.activities.AboutMeActivity.java
com.nasageek.utexasutilities.activities.BalanceActivity.java
com.nasageek.utexasutilities.activities.BlackboardPanesActivity.java
com.nasageek.utexasutilities.activities.CampusMapActivity.java
com.nasageek.utexasutilities.activities.DataUsageActivity.java
com.nasageek.utexasutilities.activities.LoginActivity.java
com.nasageek.utexasutilities.activities.MenuActivity.java
com.nasageek.utexasutilities.activities.NutritionInfoActivity.java
com.nasageek.utexasutilities.activities.Preferences.java
com.nasageek.utexasutilities.activities.ScheduleActivity.java
com.nasageek.utexasutilities.activities.UTilitiesActivity.java
com.nasageek.utexasutilities.adapters.BBClassAdapter.java
com.nasageek.utexasutilities.adapters.CourseMapAdapter.java
com.nasageek.utexasutilities.adapters.MultiPanePagerAdapter.java
com.nasageek.utexasutilities.adapters.MyFragmentPagerAdapter.java
com.nasageek.utexasutilities.adapters.ScheduleClassAdapter.java
com.nasageek.utexasutilities.adapters.TransactionAdapter.java
com.nasageek.utexasutilities.fragments.ActionModeFragment.java
com.nasageek.utexasutilities.fragments.BlackboardAnnouncementsFragment.java
com.nasageek.utexasutilities.fragments.BlackboardCourseListFragment.java
com.nasageek.utexasutilities.fragments.BlackboardCourseMapFragment.java
com.nasageek.utexasutilities.fragments.BlackboardDashboardFragment.java
com.nasageek.utexasutilities.fragments.BlackboardDownloadableItemFragment.java
com.nasageek.utexasutilities.fragments.BlackboardExternalItemFragment.java
com.nasageek.utexasutilities.fragments.BlackboardFragment.java
com.nasageek.utexasutilities.fragments.BlackboardGradesFragment.java
com.nasageek.utexasutilities.fragments.BlackboardPagerFragment.java
com.nasageek.utexasutilities.fragments.CourseScheduleFragment.java
com.nasageek.utexasutilities.fragments.DatePickerFragment.java
com.nasageek.utexasutilities.fragments.DoubleDatePickerDialogFragment.java
com.nasageek.utexasutilities.fragments.ExamScheduleFragment.java
com.nasageek.utexasutilities.fragments.MenuFragment.java
com.nasageek.utexasutilities.fragments.NutritionInfoFragment.java
com.nasageek.utexasutilities.fragments.PickCalendarDialogFragment.java
com.nasageek.utexasutilities.fragments.TransactionsFragment.java
com.nasageek.utexasutilities.model.BBClass.java
com.nasageek.utexasutilities.model.Building.java
com.nasageek.utexasutilities.model.Classtime.java
com.nasageek.utexasutilities.model.CourseMapItem.java
com.nasageek.utexasutilities.model.FeedItem.java
com.nasageek.utexasutilities.model.Placemark.java
com.nasageek.utexasutilities.model.Transaction.java
com.nasageek.utexasutilities.model.UTClass.java
com.viewpagerindicator.MyTabPageIndicator.java