Android Open Source - zionhs Main Activity






From Project

Back to project page zionhs.

License

The source code is released under:

GNU General Public License

If you think the Android project zionhs 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

/*
 * Zion High School Application for Android
 * Copyright (C) 2013 Youngbin Han<sukso96100@gmail.com>
 */*from   ww w  .ja v a 2 s. co m*/
 * This program 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
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.licubeclub.zionhs;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Handler;
import android.os.Message;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;

public class MainActivity extends ActionBarActivity {
    private DrawerLayout NavigationDrawer;
    private ActionBarDrawerToggle DrawerToggle;
    private ListView DrawerList;
    private ArrayList<String> DrawerArray;
    private ArrayList<Drawable> IconArray;
    private DrawerListAdapter Adapter;
    private Boolean isNavDrawerOpen = false;

    String MealString;
    String ScheduleString;
    String NoticesParentString;
    String NoticeString;

    int AMorPM;
    int DAYofWEEK;
    int DAYofMONTH;

    String[] lunchstring = new String[7];
    String[] dinnerstring = new String[7];

    private String URL = "http://www.zion.hs.kr/main.php?menugrp=020500&master=" +
            "diary&act=list&master_sid=1";
    private ArrayList<String> dayarray;
    private ArrayList<String> schedulearray;

    private ArrayList<String> titlearray_np;
    private ArrayList<String> titlearray_n;

    private TextView MEAL;
    private TextView SCHEDULE;
    private TextView NOTIPARNTS;
    private TextView NOTICES;

    private SwipeRefreshLayout SRL;

    ConnectivityManager cManager;
    NetworkInfo mobile;
    NetworkInfo wifi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Calendar Cal = Calendar.getInstance();
        AMorPM = Cal.get(Calendar.AM_PM);
        DAYofWEEK = Cal.get(Calendar.DAY_OF_WEEK);
        DAYofMONTH = Cal.get(Calendar.DAY_OF_MONTH);

        Log.d("DAYofMONTH",String.valueOf(Cal.get(Calendar.DAY_OF_MONTH)));

        cManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        mobile = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        wifi = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        setContentView(R.layout.activity_main);
        //Launch Tutorial Activity If user new to this app
        SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
        Boolean firstrun = pref.getBoolean("firstrun", true);
//        if (firstrun) {
//            Intent guide = new Intent(MainActivity.this, Tutorial.class);
//            startActivity(guide);
//            SharedPreferences.Editor editor = pref.edit(); // Load Editor
//            editor.putBoolean("firstrun", false); //put value
//            editor.commit(); // Save value
//        }
//        else{
//            //Do Nothing
//        }

        Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        MEAL = (TextView)findViewById(R.id.mealdata);
        SCHEDULE = (TextView)findViewById(R.id.schedata);
        NOTIPARNTS = (TextView)findViewById(R.id.notiparentdata);
        NOTICES  = (TextView)findViewById(R.id.notidata);

        View notices = findViewById(R.id.notices);
        View meal = findViewById(R.id.meal);
        View schedule = findViewById(R.id.schedule);
        View notices_parents = findViewById(R.id.notices_parents);

        notices.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Notices.class);
                startActivity(intent);
            }
        });

        meal.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, MealActivity3.class);
                startActivity(intent);
            }
        });



       schedule.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Schedule.class);
                startActivity(intent);
            }
        });




        notices_parents.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Notices_Parents.class);
                startActivity(intent);
            }
        });



        //Navigation Drawer
        DrawerArray = new ArrayList<String>();
        DrawerArray.add(getString(R.string.meal));
        DrawerArray.add(getString(R.string.schedule));
        DrawerArray.add(getString(R.string.title_activity_notices__parents));
        DrawerArray.add(getString(R.string.notices));
        DrawerArray.add(getString(R.string.schoolintro));
        DrawerArray.add(getString(R.string.schoolinfo));
        DrawerArray.add(getString(R.string.appsettings_apinfo_title));

        IconArray = new ArrayList<Drawable>();
        IconArray.add(getResources().getDrawable(R.drawable.ic_meal));
        IconArray.add(getResources().getDrawable(R.drawable.ic_event_black_24dp));
        IconArray.add(getResources().getDrawable(R.drawable.ic_insert_drive_file_black_24dp));
        IconArray.add(getResources().getDrawable(R.drawable.ic_speaker_notes_black_24dp));
        IconArray.add(getResources().getDrawable(R.drawable.ic_intro));
        IconArray.add(getResources().getDrawable(R.drawable.ic_school));
        IconArray.add(getResources().getDrawable(R.drawable.ic_info_black_24dp));


        NavigationDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        DrawerList = (ListView) findViewById(R.id.left_drawer);

        Adapter = new DrawerListAdapter(this, DrawerArray, IconArray);
        DrawerList.setAdapter(Adapter);

        //Listen for Navigation Drawer State
        DrawerToggle = new ActionBarDrawerToggle(this,
                NavigationDrawer, R.string.drawer_open, R.string.drawer_close){
            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                isNavDrawerOpen = false;
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
//                getSupportActionBar().setBackgroundDrawable(Darkblue);
                isNavDrawerOpen = true;
            }

        };
        NavigationDrawer.setDrawerListener(DrawerToggle);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);

        //Drawer Item Click action
        DrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position){
                    case 0:
                        startActivity(new Intent(MainActivity.this, MealActivity3.class));
                        break;
                    case 1:
                        startActivity(new Intent(MainActivity.this, Schedule.class));
                        break;
                    case 2:
                        startActivity(new Intent(MainActivity.this, Notices_Parents.class));
                        break;
                    case 3:
                        startActivity(new Intent(MainActivity.this, Notices.class));
                        break;
                    case 4:
                        startActivity(new Intent(MainActivity.this, Schoolintro.class));
                        break;
                    case 5:
                        startActivity(new Intent(MainActivity.this, Schoolinfo.class));
                        break;
                    case 6:
                        startActivity(new Intent(MainActivity.this, Appinfo.class));
                        break;
                }
            }
        });

        SRL = (SwipeRefreshLayout)findViewById(R.id.swiperefresh);
        if(mobile.isConnected() || wifi.isConnected()){
            networkTask();
        }
        else{

            Toast toast = Toast.makeText(getApplicationContext(),
                    getResources().getString(R.string.network_connection_warning), Toast.LENGTH_LONG);
            toast.setGravity(Gravity.BOTTOM, 0, 0);
            toast.show();
        }
        SRL.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                cManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
                mobile = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                wifi = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                if(mobile.isConnected() || wifi.isConnected()){
                    networkTask();
                }
                else{

                    Toast toast = Toast.makeText(getApplicationContext(),
                            getResources().getString(R.string.network_connection_warning), Toast.LENGTH_LONG);
                    toast.setGravity(Gravity.BOTTOM, 0, 0);
                    toast.show();
                    SRL.setRefreshing(false);
                }
            }
        });

    }

    @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.

        if(DrawerToggle.onOptionsItemSelected(item)){
            if(!isNavDrawerOpen){
                NavigationDrawer.openDrawer(Gravity.LEFT);
            }
            else{
                NavigationDrawer.closeDrawer(Gravity.LEFT);
            }
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        DrawerToggle.syncState();
    }

    @Override
    public void onBackPressed(){
        if(isNavDrawerOpen){
            NavigationDrawer.closeDrawer(Gravity.LEFT);
        }else{
            finish();
        }
    }

    void networkTask(){
        SRL.setRefreshing(true);
        final Handler handler = new Handler()
        {
            @Override
            public void handleMessage(Message msg)
            {
//            Toast toast = Toast.makeText(getApplicationContext(),
//                    getResources().getString(R.string.notices_info), Toast.LENGTH_LONG);
//            toast.setGravity(Gravity.TOP, 0, 0);
//            toast.show();
            }
        };

        final Handler mHandler = new Handler();
        new Thread()
        {

            public void run()
            {
                mHandler.post(new Runnable(){

                    public void run()
                    {
                        // SRL.setRefreshing(true);
                    }
                });
                try{
                    lunchstring = MealLoadHelper.getMeal("goe.go.kr","J100000659","4","04","2"); //Get Lunch Menu Date
                    dinnerstring = MealLoadHelper.getMeal("goe.go.kr", "J100000659", "4", "04", "3"); //Get Dinner Menu Date
                }catch (Exception e){}

                try {
                    int skipcount = 0;
                    boolean skipped = false;
                    schedulearray = new ArrayList<String>();
                    dayarray = new ArrayList<String>();

//                    ?????? ??????? ??? ????????? ??? ????
                    Document doc = Jsoup.connect(URL).get();

                    Elements rawdaydata = doc.select(".listDay"); //Get contents from the class,"listDay"
                    for (Element el : rawdaydata) {
                        String daydata = el.text();
                        if(daydata.equals("") | daydata==null){
                            if(skipped){
                            }else {
                                skipcount++;
                            }
                        }else{
                            dayarray.add(daydata); // add value to ArrayList
                            skipped = true;
                        }
                    }
                    Log.d("Schedule","Parsed Day Array" + dayarray);

                    Elements rawscheduledata = doc.select(".listData"); //Get contents from tags,"a" which are in the class,"ellipsis"
                    for (Element el : rawscheduledata) {
                        String scheduledata = el.text();
                        if(skipcount>0){
                            skipcount--;
                        }else{
                            schedulearray.add(scheduledata); // add value to ArrayList
                        }
                    }
                    Log.d("Schedule","Parsed Schedule Array" + schedulearray);
//                    SRL.setRefreshing(false);
                } catch (IOException e) {
                    e.printStackTrace();
//                    SRL.setRefreshing(false);

                }
                try {
                    titlearray_np = new ArrayList<String>();
                    Document doc = Jsoup.connect("http://www.zion.hs.kr/main.php?menugrp=110100&master=bbs&act=list&master_sid=59").get();
                    Elements rawdata = doc.select(".listbody a"); //Get contents from tags,"a" which are in the class,"listbody"
                    String titlestring = rawdata.toString();
                    Log.i("Notices","Parsed Strings" + titlestring);

                    for (Element el : rawdata) {
                        String titledata = el.attr("title");
                        titlearray_np.add(titledata); // add value to ArrayList
                    }
                    Log.i("Notices","Parsed Array Strings" + titlearray_np);


                } catch (IOException e) {
                    e.printStackTrace();

                }
                //Notices URL
                try {
                    titlearray_n = new ArrayList<String>();
                    //??? ????? URL
                    Document doc = Jsoup.connect("http://www.zion.hs.kr/main.php?" +
                            "menugrp=110100&master=bbs&act=list&master_sid=58").get();
                    //Get contents from tags,"a" which are in the class,"listbody"
                    Elements rawmaindata = doc.select(".listbody a");
                    String titlestring = rawmaindata.toString();
                    Log.i("Notices","Parsed Strings" + titlestring);


                    //??? ???????? ?? ???
                    for (Element el : rawmaindata) {
                        String titledata = el.attr("title");
                        titlearray_n.add(titledata); // add value to ArrayList
                    }
                    Log.i("Notices","Parsed Array Strings" + titlearray_n);


                } catch (IOException e) {
                    e.printStackTrace();

                }

                mHandler.post(new Runnable()
                {
                    public void run()
                    {
//                        progressDialog.dismiss();
//                        SRL.setRefreshing(false);
                        if(AMorPM==Calendar.AM){
                            MealString = lunchstring[DAYofWEEK - 1];
                        }else{
                            MealString = dinnerstring[DAYofWEEK - 1];
                        }
                        try {
                            ScheduleString = schedulearray.get(DAYofMONTH - 1);
                            NoticesParentString = titlearray_np.get(0);
                            NoticeString = titlearray_n.get(0);
                        }catch (Exception e){
                            ScheduleString = getResources().getString(R.string.error);
                            NoticesParentString = getResources().getString(R.string.error);
                            NoticeString = getResources().getString(R.string.error);
                        }
                        if(MealString.equals("") |MealString==null){
                            MealString = getResources().getString(R.string.nodata);
                        }
                        if(ScheduleString.equals("") |ScheduleString==null){
                            ScheduleString = getResources().getString(R.string.nodata);
                        }
                        SRL.setRefreshing(false);
                        handler.sendEmptyMessage(0);
                        setContentData();
                    }
                });

            }
        }.start();



    }

    void setContentData(){
        MEAL.setText(MealString);
        SCHEDULE.setText(ScheduleString);
        NOTIPARNTS.setText(NoticesParentString);
        NOTICES.setText(NoticeString);
    }

}




Java Source Code List

com.ctc.android.widget.BitmapHelper.java
com.ctc.android.widget.ImageMapTestActivity.java
com.ctc.android.widget.ImageMap.java
com.licubeclub.zionhs.Appinfo.java
com.licubeclub.zionhs.Doc_Contributors.java
com.licubeclub.zionhs.Doc_Copying.java
com.licubeclub.zionhs.Doc_Notices.java
com.licubeclub.zionhs.Doc_Readme.java
com.licubeclub.zionhs.DrawerListAdapter.java
com.licubeclub.zionhs.ListCalendarAdapter.java
com.licubeclub.zionhs.MainActivity.java
com.licubeclub.zionhs.MealActivity3.java
com.licubeclub.zionhs.MealLoadHelper.java
com.licubeclub.zionhs.Notices_Parents.java
com.licubeclub.zionhs.Notices.java
com.licubeclub.zionhs.PostListAdapter.java
com.licubeclub.zionhs.Schedule.java
com.licubeclub.zionhs.Schoolinfo.java
com.licubeclub.zionhs.Schoolintro.java
com.licubeclub.zionhs.WebViewActivity.java
com.licubeclub.zionhs.meal.FridayMeal.java
com.licubeclub.zionhs.meal.MondayMeal.java
com.licubeclub.zionhs.meal.ThursdayMeal.java
com.licubeclub.zionhs.meal.TuesdayMeal.java
com.licubeclub.zionhs.meal.WednsdayMeal.java