add cashing and refresh button
This commit is contained in:
parent
48d8fdab66
commit
8c393a36ec
@ -2,6 +2,8 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="de.tysox.bs_elmshorn">
|
package="de.tysox.bs_elmshorn">
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
BIN
app/src/main/assets/font/fontawesome.ttf
Normal file
BIN
app/src/main/assets/font/fontawesome.ttf
Normal file
Binary file not shown.
@ -1,7 +1,11 @@
|
|||||||
package de.tysox.bs_elmshorn;
|
package de.tysox.bs_elmshorn;
|
||||||
|
|
||||||
|
import android.graphics.Typeface;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.NetworkInfo;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.support.design.widget.TabLayout;
|
import android.support.design.widget.TabLayout;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
@ -12,11 +16,18 @@ import android.support.v7.app.AppCompatActivity;
|
|||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
|
import android.webkit.WebView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private static MainActivity instance;
|
private static MainActivity instance;
|
||||||
|
private int currentWeek;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@link android.support.v4.view.PagerAdapter} that will provide
|
* The {@link android.support.v4.view.PagerAdapter} that will provide
|
||||||
@ -39,17 +50,21 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
|
||||||
|
currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
|
||||||
|
|
||||||
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
// Create the adapter that will return a fragment for each of the three
|
// Create the adapter that will return a fragment for each of the three
|
||||||
// primary sections of the activity.
|
// primary sections of the activity.
|
||||||
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
|
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
|
||||||
|
|
||||||
// Set up the ViewPager with the sections adapter.
|
// Set up the ViewPager with the sections adapter.
|
||||||
mViewPager = (ViewPager) findViewById(R.id.container);
|
mViewPager = findViewById(R.id.container);
|
||||||
mViewPager.setAdapter(mSectionsPagerAdapter);
|
mViewPager.setAdapter(mSectionsPagerAdapter);
|
||||||
|
|
||||||
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
|
TabLayout tabLayout = findViewById(R.id.tabs);
|
||||||
|
|
||||||
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
|
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
|
||||||
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
|
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
|
||||||
@ -62,11 +77,50 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
// Inflate the menu; this adds items to the action bar if it is present.
|
// Inflate the menu; this adds items to the action bar if it is present.
|
||||||
getMenuInflater().inflate(R.menu.menu_main, menu);
|
getMenuInflater().inflate(R.menu.menu_main, menu);
|
||||||
|
|
||||||
|
Handler handler = new Handler();
|
||||||
|
handler.postDelayed(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
final TextView refresh = findViewById(R.id.refresh);
|
||||||
|
final TextView left = findViewById(R.id.left);
|
||||||
|
final TextView right = findViewById(R.id.right);
|
||||||
|
Typeface font = Typeface.createFromAsset(getBaseContext().getAssets(), "font/fontawesome.ttf");
|
||||||
|
refresh.setTypeface(font);
|
||||||
|
right.setTypeface(font);
|
||||||
|
left.setTypeface(font);
|
||||||
|
refresh.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
WebView webView = findViewById(R.id.timetable);
|
||||||
|
webView.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
right.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
WebView webView = findViewById(R.id.timetable);
|
||||||
|
currentWeek++;
|
||||||
|
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/Schueler/" + currentWeek + "/c/c00018.htm");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
left.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
WebView webView = findViewById(R.id.timetable);
|
||||||
|
currentWeek--;
|
||||||
|
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/Schueler/" + currentWeek + "/c/c00018.htm");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,10 +132,9 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
|
|
||||||
//noinspection SimplifiableIfStatement
|
//noinspection SimplifiableIfStatement
|
||||||
if (id == R.id.action_settings) {
|
/*if (id == R.id.action_settings) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,6 +150,9 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
|
final TextView refresh = MainActivity.getInstance().findViewById(R.id.refresh);
|
||||||
|
final TextView left = MainActivity.getInstance().findViewById(R.id.left);
|
||||||
|
final TextView right = MainActivity.getInstance().findViewById(R.id.right);
|
||||||
switch (position) {
|
switch (position) {
|
||||||
case 0:
|
case 0:
|
||||||
Tab1 tab1 = new Tab1();
|
Tab1 tab1 = new Tab1();
|
||||||
@ -119,6 +175,12 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isNetworkAvailable() {
|
||||||
|
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
|
||||||
|
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
|
||||||
|
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
|
||||||
|
}
|
||||||
|
|
||||||
public static MainActivity getInstance() {
|
public static MainActivity getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,10 @@ import android.support.v4.app.Fragment;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.webkit.WebSettings;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
||||||
@ -26,26 +28,62 @@ public class Tab1 extends Fragment {
|
|||||||
View rootView = inflater.inflate(R.layout.tab1, container, false);
|
View rootView = inflater.inflate(R.layout.tab1, container, false);
|
||||||
|
|
||||||
Handler handler = new Handler();
|
Handler handler = new Handler();
|
||||||
|
|
||||||
handler.postDelayed(new Runnable() {
|
handler.postDelayed(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
WebView webView= (WebView) MainActivity.getInstance().findViewById(R.id.timetable);
|
WebView webView= (WebView) MainActivity.getInstance().findViewById(R.id.timetable);
|
||||||
webView.setWebViewClient(new WebViewClient());
|
webView.setWebViewClient(new WebViewClient());
|
||||||
|
webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB
|
||||||
|
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
|
||||||
|
|
||||||
|
webView.getSettings().setAppCachePath( MainActivity.getInstance().getApplicationContext().getCacheDir().getAbsolutePath() );
|
||||||
|
webView.getSettings().setAllowFileAccess( true );
|
||||||
|
webView.getSettings().setAppCacheEnabled( true );
|
||||||
webView.getSettings().setJavaScriptEnabled(true);
|
webView.getSettings().setJavaScriptEnabled(true);
|
||||||
webView.setVerticalScrollBarEnabled(false);
|
webView.setVerticalScrollBarEnabled(false);
|
||||||
webView.setHorizontalScrollBarEnabled(false);
|
webView.setHorizontalScrollBarEnabled(false);
|
||||||
|
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
|
||||||
|
|
||||||
|
if(!MainActivity.getInstance().isNetworkAvailable()) {
|
||||||
|
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
|
||||||
|
}
|
||||||
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
|
||||||
currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
|
currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
|
||||||
|
|
||||||
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/Schueler/"+currentWeek+"/c/c00018.htm");
|
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/Schueler/"+currentWeek+"/c/c00018.htm");
|
||||||
// s5 mini 119 opx 170
|
// s5 mini 119 opx 170 xperia 113
|
||||||
webView.setInitialScale(119);
|
webView.setInitialScale(170);
|
||||||
}
|
}
|
||||||
},100);
|
},101);
|
||||||
|
|
||||||
|
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||||
|
super.setUserVisibleHint(isVisibleToUser);
|
||||||
|
final TextView refresh = MainActivity.getInstance().findViewById(R.id.refresh);
|
||||||
|
final TextView left = MainActivity.getInstance().findViewById(R.id.left);
|
||||||
|
final TextView right = MainActivity.getInstance().findViewById(R.id.right);
|
||||||
|
if (isVisibleToUser) {
|
||||||
|
try {
|
||||||
|
refresh.setVisibility(View.VISIBLE);
|
||||||
|
left.setVisibility(View.VISIBLE);
|
||||||
|
right.setVisibility(View.VISIBLE);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
refresh.setVisibility(View.INVISIBLE);
|
||||||
|
left.setVisibility(View.INVISIBLE);
|
||||||
|
right.setVisibility(View.INVISIBLE);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,11 +6,10 @@ import android.support.v4.app.Fragment;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.webkit.WebSettings;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
|
|
||||||
import java.util.Calendar;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Jan on 16.09.2017.
|
* Created by Jan on 16.09.2017.
|
||||||
*/
|
*/
|
||||||
@ -22,23 +21,30 @@ public class Tab2 extends Fragment {
|
|||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
View rootView = inflater.inflate(R.layout.tab2, container, false);
|
View rootView = inflater.inflate(R.layout.tab2, container, false);
|
||||||
Handler handler = new Handler();
|
Handler handler = new Handler();
|
||||||
|
|
||||||
handler.postDelayed(new Runnable() {
|
handler.postDelayed(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
WebView webView= (WebView) MainActivity.getInstance().findViewById(R.id.vt1);
|
WebView webView= (WebView) MainActivity.getInstance().findViewById(R.id.vt1);
|
||||||
webView.setWebViewClient(new WebViewClient());
|
webView.setWebViewClient(new WebViewClient());
|
||||||
|
webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB
|
||||||
|
webView.getSettings().setAppCachePath( MainActivity.getInstance().getApplicationContext().getCacheDir().getAbsolutePath() );
|
||||||
|
webView.getSettings().setAllowFileAccess( true );
|
||||||
|
webView.getSettings().setAppCacheEnabled( true );
|
||||||
|
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
|
||||||
webView.getSettings().setJavaScriptEnabled(true);
|
webView.getSettings().setJavaScriptEnabled(true);
|
||||||
webView.setVerticalScrollBarEnabled(false);
|
webView.setVerticalScrollBarEnabled(false);
|
||||||
webView.setHorizontalScrollBarEnabled(false);
|
webView.setHorizontalScrollBarEnabled(false);
|
||||||
|
|
||||||
|
if(!MainActivity.getInstance().isNetworkAvailable()) {
|
||||||
|
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/DSB/f1/subst_001.htm");
|
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/DSB/f1/subst_001.htm");
|
||||||
// s5 mini 100 opx 150
|
// s5 mini 100 opx 150
|
||||||
webView.setInitialScale(150);
|
webView.setInitialScale(150);
|
||||||
}
|
}
|
||||||
},100);
|
},100);
|
||||||
|
|
||||||
|
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import android.support.v4.app.Fragment;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.webkit.WebSettings;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
|
|
||||||
@ -19,18 +20,28 @@ public class Tab3 extends Fragment {
|
|||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
View rootView = inflater.inflate(R.layout.tab3, container, false);
|
View rootView = inflater.inflate(R.layout.tab3, container, false);
|
||||||
|
|
||||||
|
|
||||||
Handler handler = new Handler();
|
Handler handler = new Handler();
|
||||||
|
|
||||||
handler.postDelayed(new Runnable() {
|
handler.postDelayed(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
WebView webView= (WebView) MainActivity.getInstance().findViewById(R.id.vt2);
|
|
||||||
|
|
||||||
|
WebView webView= MainActivity.getInstance().findViewById(R.id.vt2);
|
||||||
webView.setWebViewClient(new WebViewClient());
|
webView.setWebViewClient(new WebViewClient());
|
||||||
|
webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB
|
||||||
|
webView.getSettings().setAppCachePath( MainActivity.getInstance().getApplicationContext().getCacheDir().getAbsolutePath() );
|
||||||
|
webView.getSettings().setAllowFileAccess( true );
|
||||||
|
webView.getSettings().setAppCacheEnabled( true );
|
||||||
|
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
|
||||||
webView.getSettings().setJavaScriptEnabled(true);
|
webView.getSettings().setJavaScriptEnabled(true);
|
||||||
webView.setVerticalScrollBarEnabled(false);
|
webView.setVerticalScrollBarEnabled(false);
|
||||||
webView.setHorizontalScrollBarEnabled(false);
|
webView.setHorizontalScrollBarEnabled(false);
|
||||||
|
|
||||||
|
if(!MainActivity.getInstance().isNetworkAvailable()) {
|
||||||
|
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
|
||||||
|
}
|
||||||
|
|
||||||
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/DSB/f1/subst_002.htm");
|
webView.loadUrl("http://www.bs-elmshorn.de/Stundenplan/DSB/f1/subst_002.htm");
|
||||||
// s5 mini 100 opx 150
|
// s5 mini 100 opx 150
|
||||||
webView.setInitialScale(150);
|
webView.setInitialScale(150);
|
||||||
|
@ -1,10 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
tools:context="de.tysox.bs_elmshorn.MainActivity">
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_settings"
|
android:id="@+id/refresh"
|
||||||
android:orderInCategory="100"
|
android:actionViewClass="android.widget.TextView"
|
||||||
android:title="@string/action_settings"
|
android:title="@string/fa_refresh"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="always"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/left"
|
||||||
|
android:actionViewClass="android.widget.TextView"
|
||||||
|
android:title="@string/fa_left"
|
||||||
|
app:showAsAction="always"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/right"
|
||||||
|
android:actionViewClass="android.widget.TextView"
|
||||||
|
android:title="@string/fa_right"
|
||||||
|
app:showAsAction="always" />
|
||||||
|
|
||||||
|
|
||||||
</menu>
|
</menu>
|
@ -4,4 +4,7 @@
|
|||||||
<string name="tab_text_2">Vertretung 1</string>
|
<string name="tab_text_2">Vertretung 1</string>
|
||||||
<string name="tab_text_3">Vertretung 2</string>
|
<string name="tab_text_3">Vertretung 2</string>
|
||||||
<string name="action_settings">Settings</string>
|
<string name="action_settings">Settings</string>
|
||||||
|
<string name="fa_refresh"></string>
|
||||||
|
<string name="fa_left"></string>
|
||||||
|
<string name="fa_right"></string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user