├── settings.gradle
├── EdgeEffectOverride
├── gradle.properties
├── src
│ └── main
│ │ ├── res
│ │ ├── values
│ │ │ ├── defaults.xml
│ │ │ └── attrs.xml
│ │ ├── values-v19
│ │ │ └── defaults.xml
│ │ ├── drawable-hdpi
│ │ │ ├── overscroll_edge.png
│ │ │ └── overscroll_glow.png
│ │ ├── drawable-mdpi
│ │ │ ├── overscroll_edge.png
│ │ │ └── overscroll_glow.png
│ │ ├── drawable-xhdpi
│ │ │ ├── overscroll_edge.png
│ │ │ └── overscroll_glow.png
│ │ ├── drawable-hdpi-v19
│ │ │ ├── overscroll_edge.png
│ │ │ └── overscroll_glow.png
│ │ ├── drawable-mdpi-v19
│ │ │ ├── overscroll_edge.png
│ │ │ └── overscroll_glow.png
│ │ ├── drawable-xhdpi-v19
│ │ │ ├── overscroll_edge.png
│ │ │ └── overscroll_glow.png
│ │ └── drawable-xxhdpi-v19
│ │ │ ├── overscroll_edge.png
│ │ │ └── overscroll_glow.png
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── uk
│ │ └── co
│ │ └── androidalliance
│ │ └── edgeeffectoverride
│ │ ├── ViewPager.java
│ │ ├── ExpandableListView.java
│ │ ├── Spinner.java
│ │ ├── MulticastOnScrollListener.java
│ │ ├── WebView.java
│ │ ├── ScrollView.java
│ │ ├── GridView.java
│ │ ├── ListView.java
│ │ ├── HorizontalScrollView.java
│ │ └── ContextWrapperEdgeEffect.java
└── build.gradle
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── EdgeEffectOverrideSample
├── src
│ └── main
│ │ ├── ic_launcher-web.png
│ │ ├── res
│ │ ├── drawable-hdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-mdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── styles.xml
│ │ │ └── strings.xml
│ │ └── layout
│ │ │ ├── activity_main.xml
│ │ │ ├── listview_layout.xml
│ │ │ ├── gridview_layout.xml
│ │ │ ├── webview_layout.xml
│ │ │ ├── expandablelistview_layout.xml
│ │ │ ├── viewpager_layout.xml
│ │ │ └── scrollview_layout.xml
│ │ ├── java
│ │ └── uk
│ │ │ └── co
│ │ │ └── androidalliance
│ │ │ └── edgeeffectoverride
│ │ │ └── sample
│ │ │ ├── ScrollViewActivity.java
│ │ │ ├── GridViewActivity.java
│ │ │ ├── ListViewActivity.java
│ │ │ ├── WebViewActivity.java
│ │ │ ├── MainActivity.java
│ │ │ ├── ViewPagerActivity.java
│ │ │ └── ExpandableListViewActivity.java
│ │ └── AndroidManifest.xml
└── build.gradle
├── .gitignore
├── gradle.properties
├── README.md
├── gradlew.bat
├── maven_push.gradle
└── gradlew
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':EdgeEffectOverride', ':EdgeEffectOverrideSample'
2 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/gradle.properties:
--------------------------------------------------------------------------------
1 | POM_NAME=Edge Effect Override - Library
2 | POM_ARTIFACT_ID=edgeeffectoverride
3 | POM_PACKAGING=aar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverrideSample/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/values/defaults.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FF33B5E5
4 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/values-v19/defaults.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FF717171
4 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-hdpi/overscroll_edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-hdpi/overscroll_edge.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-hdpi/overscroll_glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-hdpi/overscroll_glow.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-mdpi/overscroll_edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-mdpi/overscroll_edge.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-mdpi/overscroll_glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-mdpi/overscroll_glow.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-xhdpi/overscroll_edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-xhdpi/overscroll_edge.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-xhdpi/overscroll_glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-xhdpi/overscroll_glow.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-hdpi-v19/overscroll_edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-hdpi-v19/overscroll_edge.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-hdpi-v19/overscroll_glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-hdpi-v19/overscroll_glow.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-mdpi-v19/overscroll_edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-mdpi-v19/overscroll_edge.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-mdpi-v19/overscroll_glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-mdpi-v19/overscroll_glow.png
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverrideSample/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverrideSample/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverrideSample/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverrideSample/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-xhdpi-v19/overscroll_edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-xhdpi-v19/overscroll_edge.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-xhdpi-v19/overscroll_glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-xhdpi-v19/overscroll_glow.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-xxhdpi-v19/overscroll_edge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-xxhdpi-v19/overscroll_edge.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/drawable-xxhdpi-v19/overscroll_glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverride/src/main/res/drawable-xxhdpi-v19/overscroll_glow.png
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/drawable-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndroidAlliance/EdgeEffectOverride/HEAD/EdgeEffectOverrideSample/src/main/res/drawable-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Nov 06 17:28:58 GMT 2014
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
7 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFFFF
4 | #AA66CC
5 | #ffff4444
6 | #ff99cc00
7 | #FFFFBB33
8 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Eclipse
2 | .project
3 | .classpath
4 | .settings
5 | .checkstyle
6 |
7 | # IntelliJ IDEA
8 | .idea
9 | *.iml
10 | *.ipr
11 | *.iws
12 | classes
13 | gen-external-apklibs
14 |
15 | # Gradle
16 | .gradle
17 | build
18 |
19 | # Maven
20 | target
21 | release.properties
22 | pom.xml.*
23 |
24 | # Ant
25 | bin
26 | gen
27 | build.xml
28 | ant.properties
29 | local.properties
30 | proguard.cfg
31 | proguard-project.txt
32 |
33 | # Other
34 | .DS_Store
35 | tmp
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/java/uk/co/androidalliance/edgeeffectoverride/sample/ScrollViewActivity.java:
--------------------------------------------------------------------------------
1 | package uk.co.androidalliance.edgeeffectoverride.sample;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 |
6 | public class ScrollViewActivity extends Activity {
7 |
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | setContentView(R.layout.scrollview_layout);
12 |
13 |
14 | }
15 |
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | repositories {
4 | mavenCentral()
5 | }
6 |
7 | android {
8 | compileSdkVersion 21
9 | buildToolsVersion '21.0.2'
10 |
11 | defaultConfig {
12 | minSdkVersion 10
13 | targetSdkVersion 16
14 |
15 | versionName project.VERSION_NAME
16 | versionCode Integer.parseInt(project.VERSION_CODE)
17 | }
18 | }
19 |
20 | dependencies {
21 | compile 'com.android.support:support-v4:18.0.+'
22 | }
23 |
24 | // directions for mvn-push: https://github.com/chrisbanes/gradle-mvn-push
25 | //apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/build.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | ____ _
3 | / ___| __ _ _ __ ___ _ __ | | ___
4 | \___ \ / _` | '_ ` _ \| '_ \| |/ _ \
5 | ___) | (_| | | | | | | |_) | | __/
6 | |____/ \__,_|_| |_| |_| .__/|_|\___|
7 | |_|
8 | */
9 | apply plugin: 'com.android.application'
10 |
11 | repositories {
12 | mavenCentral()
13 | }
14 |
15 | android {
16 | compileSdkVersion 21
17 | buildToolsVersion '21.0.2'
18 |
19 | defaultConfig {
20 | minSdkVersion 11
21 | targetSdkVersion 16
22 | }
23 | }
24 |
25 | dependencies {
26 | compile 'com.android.support:support-v4:18.0.+'
27 | compile project(':EdgeEffectOverride')
28 | }
29 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/layout/listview_layout.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/layout/gridview_layout.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/layout/webview_layout.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/layout/expandablelistview_layout.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/java/uk/co/androidalliance/edgeeffectoverride/sample/GridViewActivity.java:
--------------------------------------------------------------------------------
1 | package uk.co.androidalliance.edgeeffectoverride.sample;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 | import android.widget.ArrayAdapter;
6 |
7 | import uk.co.androidalliance.edgeeffectoverride.GridView;
8 |
9 | public class GridViewActivity extends Activity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.gridview_layout);
15 |
16 | ((GridView) findViewById(R.id.gridview))
17 | .setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.stringarray)));
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/java/uk/co/androidalliance/edgeeffectoverride/sample/ListViewActivity.java:
--------------------------------------------------------------------------------
1 | package uk.co.androidalliance.edgeeffectoverride.sample;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 | import android.widget.ArrayAdapter;
6 |
7 | import uk.co.androidalliance.edgeeffectoverride.ListView;
8 |
9 | public class ListViewActivity extends Activity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.listview_layout);
15 |
16 | ((ListView) findViewById(R.id.listview))
17 | .setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.stringarray)));
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | VERSION_NAME=1.0.2
2 | VERSION_CODE=2
3 | GROUP=uk.co.androidalliance
4 |
5 | POM_DESCRIPTION=The Edge Effect Override is an Android Library designed to help override the overscroll_edge and overscroll_glow effects used by the EdgeEffect class.
6 | POM_URL=https://github.com/AndroidAlliance/EdgeEffectOverride
7 | POM_SCM_URL=https://github.com/AndroidAlliance/EdgeEffectOverride
8 | POM_SCM_CONNECTION=scm:git://androidalliance.github.com/AndroidAlliance/EdgeEffectOverride.git
9 | POM_SCM_DEV_CONNECTION=scm:git@androidalliance.github.com:AndroidAlliance/EdgeEffectOverride.git
10 | POM_LICENCE_NAME=The Apache Software License, Version 2.0
11 | POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
12 | POM_LICENCE_DIST=repo
13 | POM_DEVELOPER_ID=androidalliance
14 | POM_DEVELOPER_NAME=Android Alliance
15 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/layout/viewpager_layout.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
14 |
15 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/res/layout/scrollview_layout.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
15 |
16 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | EdgeEffectOverride
2 | =================
3 |
4 | EdgeEffectOverride is library designed to help override the blue *overscroll_edge* and *overscroll_glow* effects used by the the *EdgeEffect* class.
5 |
6 | 
7 |
8 | Simply import the project into your library, replace existing
9 | references to ScrollView, ListView, ExpandableListView, GridView & ViewPager
10 | with references to the the classes found in this library.
11 |
12 | No need to edit any graphics, simply colorize the edge effect dynamically or via the layout xml, easy!
13 |
14 | Dependency
15 | Adding it as a dependency to your project.
16 |
17 | Gradle:
18 |
19 | dependencies {
20 | compile 'uk.co.androidalliance:edgeeffectoverride:1.0.2'
21 | }
22 |
23 |
24 |
25 |
26 | Developed By
27 | ============
28 |
29 | * Android Alliance -
30 |
31 |
32 | License
33 | =======
34 |
35 | Copyright 2014 Android Alliance Ltd
36 |
37 | Licensed under the Apache License, Version 2.0 (the "License");
38 | you may not use this file except in compliance with the License.
39 | You may obtain a copy of the License at
40 |
41 | http://www.apache.org/licenses/LICENSE-2.0
42 |
43 | Unless required by applicable law or agreed to in writing, software
44 | distributed under the License is distributed on an "AS IS" BASIS,
45 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
46 | See the License for the specific language governing permissions and
47 | limitations under the License.
48 |
49 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/java/uk/co/androidalliance/edgeeffectoverride/sample/WebViewActivity.java:
--------------------------------------------------------------------------------
1 | package uk.co.androidalliance.edgeeffectoverride.sample;
2 |
3 | import android.app.Activity;
4 | import android.graphics.Color;
5 | import android.os.Bundle;
6 | import android.webkit.WebChromeClient;
7 | import android.webkit.WebSettings;
8 | import android.webkit.WebView;
9 | import android.webkit.WebViewClient;
10 |
11 | public class WebViewActivity extends Activity {
12 |
13 | private WebView mWebView;
14 |
15 | @Override
16 | protected void onCreate(Bundle savedInstanceState) {
17 | super.onCreate(savedInstanceState);
18 | setContentView(R.layout.webview_layout);
19 |
20 | mWebView = ((WebView) findViewById(R.id.webview));
21 | initWebView();
22 | }
23 |
24 | private void initWebView() {
25 | mWebView.setWebViewClient(new WebViewClient());
26 | mWebView.setWebChromeClient(new WebChromeClient());
27 | WebSettings settings = mWebView.getSettings();
28 | settings.setSavePassword(true);
29 | settings.setSaveFormData(true);
30 | settings.setJavaScriptEnabled(true);
31 | settings.setSupportZoom(false);
32 | settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
33 | settings.setDomStorageEnabled(true);
34 | settings.setSupportMultipleWindows(false);
35 |
36 |
37 | mWebView.loadUrl("http://developer.android.com");
38 | }
39 |
40 | @Override
41 | public void onBackPressed() {
42 | if (mWebView.canGoBack())
43 | mWebView.goBack();
44 | else
45 | super.onBackPressed();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/java/uk/co/androidalliance/edgeeffectoverride/sample/MainActivity.java:
--------------------------------------------------------------------------------
1 | package uk.co.androidalliance.edgeeffectoverride.sample;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.view.View;
7 | import android.widget.AdapterView;
8 | import android.widget.ArrayAdapter;
9 |
10 | import uk.co.androidalliance.edgeeffectoverride.ListView;
11 |
12 | public class MainActivity extends Activity implements AdapterView.OnItemClickListener {
13 |
14 | private static final String[] STRINGS = {
15 | "ListView",
16 | "ExpandableListView",
17 | "GridView",
18 | "ScrollView",
19 | "ViewPager",
20 | "WebView",
21 | };
22 | private static final Class[] ACTIVITIES = {
23 | ListViewActivity.class,
24 | ExpandableListViewActivity.class,
25 | GridViewActivity.class,
26 | ScrollViewActivity.class,
27 | ViewPagerActivity.class,
28 | WebViewActivity.class
29 | };
30 | private ListView mListView;
31 |
32 | @Override
33 | protected void onCreate(Bundle savedInstanceState) {
34 | super.onCreate(savedInstanceState);
35 | setContentView(R.layout.activity_main);
36 |
37 | mListView = (ListView) findViewById(R.id.listview);
38 | mListView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, STRINGS));
39 | mListView.setOnItemClickListener(this);
40 | }
41 |
42 | @Override
43 | public void onItemClick(AdapterView> parent, View view, int position, long id) {
44 | Intent intent = new Intent(this, ACTIVITIES[position]);
45 | startActivity(intent);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/java/uk/co/androidalliance/edgeeffectoverride/sample/ViewPagerActivity.java:
--------------------------------------------------------------------------------
1 | package uk.co.androidalliance.edgeeffectoverride.sample;
2 |
3 | import android.os.Bundle;
4 | import android.app.Activity;
5 | import android.support.v4.view.PagerAdapter;
6 | import android.support.v4.view.ViewPager;
7 | import android.view.Gravity;
8 | import android.view.View;
9 | import android.view.ViewGroup;
10 | import android.widget.TextView;
11 |
12 | public class ViewPagerActivity extends Activity {
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | setContentView(R.layout.viewpager_layout);
18 |
19 | ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
20 |
21 | viewPager.setAdapter(new PagerAdapter() {
22 |
23 | @Override
24 | public Object instantiateItem(ViewGroup container, int position) {
25 | TextView textView = new TextView(ViewPagerActivity.this);
26 | textView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
27 | textView.setGravity(Gravity.CENTER);
28 | textView.setText("Item " + position);
29 | container.addView(textView);
30 | return textView;
31 | }
32 |
33 | @Override
34 | public CharSequence getPageTitle(int position) {
35 | return "Item " + position;
36 | }
37 |
38 | @Override
39 | public int getCount() {
40 | return 2;
41 | }
42 |
43 | @Override
44 | public boolean isViewFromObject(View view, Object o) {
45 | return o instanceof View && view == o;
46 | }
47 | });
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/java/uk/co/androidalliance/edgeeffectoverride/ViewPager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Android Alliance, LTD
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package uk.co.androidalliance.edgeeffectoverride;
17 |
18 | import android.content.Context;
19 | import android.content.res.TypedArray;
20 | import android.util.AttributeSet;
21 |
22 | public class ViewPager extends android.support.v4.view.ViewPager {
23 |
24 | public ViewPager(Context context) {
25 | this(context, null);
26 | }
27 |
28 | public ViewPager(Context context, AttributeSet attrs) {
29 | super(new ContextWrapperEdgeEffect(context), attrs);
30 | init(context, attrs, 0);
31 | }
32 |
33 | private void init(Context context, AttributeSet attrs, int defStyle) {
34 | int color = context.getResources().getColor(R.color.default_edgeeffect_color);
35 |
36 | if (attrs != null) {
37 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.EdgeEffectView, defStyle, 0);
38 | color = a.getColor(R.styleable.EdgeEffectView_edgeeffect_color, color);
39 | a.recycle();
40 | }
41 | setEdgeEffectColor(color);
42 | }
43 |
44 | public void setEdgeEffectColor(int edgeEffectColor) {
45 | ((ContextWrapperEdgeEffect) getContext()).setEdgeEffectColor(edgeEffectColor);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
18 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
30 |
33 |
34 |
37 |
38 |
41 |
42 |
45 |
46 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/java/uk/co/androidalliance/edgeeffectoverride/ExpandableListView.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Android Alliance, LTD
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package uk.co.androidalliance.edgeeffectoverride;
17 |
18 | import android.content.Context;
19 | import android.content.res.TypedArray;
20 | import android.util.AttributeSet;
21 |
22 | public class ExpandableListView extends android.widget.ExpandableListView {
23 |
24 | public ExpandableListView(Context context) {
25 | this(context, null);
26 | }
27 |
28 | public ExpandableListView(Context context, AttributeSet attrs) {
29 | this(context, attrs, android.R.attr.expandableListViewStyle);
30 | }
31 |
32 | public ExpandableListView(Context context, AttributeSet attrs, int defStyle) {
33 | super(new ContextWrapperEdgeEffect(context), attrs, defStyle);
34 | init(context, attrs, defStyle);
35 | }
36 |
37 | private void init(Context context, AttributeSet attrs, int defStyle){
38 | int color = context.getResources().getColor(R.color.default_edgeeffect_color);
39 |
40 | if (attrs != null) {
41 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.EdgeEffectView, defStyle, 0);
42 | color = a.getColor(R.styleable.EdgeEffectView_edgeeffect_color, color);
43 | a.recycle();
44 | }
45 | setEdgeEffectColor(color);
46 | }
47 |
48 | public void setEdgeEffectColor(int edgeEffectColor){
49 | ((ContextWrapperEdgeEffect) getContext()).setEdgeEffectColor(edgeEffectColor);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/java/uk/co/androidalliance/edgeeffectoverride/Spinner.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Android Alliance, LTD
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package uk.co.androidalliance.edgeeffectoverride;
17 |
18 | import android.content.Context;
19 | import android.content.res.TypedArray;
20 | import android.util.AttributeSet;
21 |
22 | public class Spinner extends android.widget.Spinner {
23 |
24 | public Spinner(Context context) {
25 | this(context, null);
26 | }
27 |
28 | public Spinner(Context context, AttributeSet attrs) {
29 | this(context, attrs, android.R.attr.dropDownSpinnerStyle);
30 | }
31 |
32 | public Spinner(Context context, AttributeSet attrs, int defStyle) {
33 | super(new ContextWrapperEdgeEffect(context), attrs, defStyle);
34 | init(context, attrs, defStyle);
35 | }
36 |
37 | private void init(Context context, AttributeSet attrs, int defStyle) {
38 | int color = context.getResources().getColor(R.color.default_edgeeffect_color);
39 |
40 | if (attrs != null) {
41 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.EdgeEffectView, defStyle, 0);
42 | color = a.getColor(R.styleable.EdgeEffectView_edgeeffect_color, color);
43 | a.recycle();
44 | }
45 | setEdgeEffectColor(color);
46 | }
47 |
48 | public void setEdgeEffectColor(int edgeEffectColor) {
49 | ((ContextWrapperEdgeEffect) getContext()).setEdgeEffectColor(edgeEffectColor);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/java/uk/co/androidalliance/edgeeffectoverride/MulticastOnScrollListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Android Alliance, LTD
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package uk.co.androidalliance.edgeeffectoverride;
17 |
18 | import android.widget.AbsListView;
19 |
20 | import java.util.HashSet;
21 | import java.util.Iterator;
22 | import java.util.Set;
23 |
24 | public class MulticastOnScrollListener implements AbsListView.OnScrollListener {
25 |
26 | private Set mListeners = new HashSet();
27 |
28 | public MulticastOnScrollListener add(AbsListView.OnScrollListener scrollListener) {
29 | mListeners.add(scrollListener);
30 | return this;
31 | }
32 |
33 | public MulticastOnScrollListener clear() {
34 | mListeners.clear();
35 | return this;
36 | }
37 |
38 | @Override
39 | public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
40 | Iterator iterator = this.mListeners.iterator();
41 | while (iterator.hasNext()) {
42 | ((AbsListView.OnScrollListener) iterator.next()).onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
43 | }
44 | }
45 |
46 | @Override
47 | public void onScrollStateChanged(AbsListView view, int scrollState) {
48 | Iterator iterator = mListeners.iterator();
49 | while (iterator.hasNext()) {
50 | ((AbsListView.OnScrollListener) iterator.next()).onScrollStateChanged(view, scrollState);
51 | }
52 | }
53 |
54 | public MulticastOnScrollListener remove(AbsListView.OnScrollListener scrollListener) {
55 | mListeners.remove(scrollListener);
56 | return this;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/EdgeEffectOverride/src/main/java/uk/co/androidalliance/edgeeffectoverride/WebView.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Android Alliance, LTD
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package uk.co.androidalliance.edgeeffectoverride;
17 |
18 | import android.annotation.TargetApi;
19 | import android.content.Context;
20 | import android.content.res.TypedArray;
21 | import android.util.AttributeSet;
22 |
23 | public class WebView extends android.webkit.WebView {
24 |
25 | public WebView(Context context) {
26 | this(context, null);
27 | }
28 |
29 | public WebView(Context context, AttributeSet attrs) {
30 | this(context, attrs, android.R.attr.webViewStyle);
31 | }
32 |
33 | public WebView(Context context, AttributeSet attrs, int defStyle) {
34 | super(new ContextWrapperEdgeEffect(context), attrs, defStyle);
35 | init(context, attrs, defStyle);
36 | }
37 |
38 | @Deprecated
39 | @TargetApi(11)
40 | public WebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {
41 | super(new ContextWrapperEdgeEffect(context), attrs, defStyle, privateBrowsing);
42 | init(context, attrs, defStyle);
43 | }
44 |
45 | private void init(Context context, AttributeSet attrs, int defStyle) {
46 | int color = context.getResources().getColor(R.color.default_edgeeffect_color);
47 |
48 | if (attrs != null) {
49 | TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.EdgeEffectView, defStyle, 0);
50 | color = a.getColor(R.styleable.EdgeEffectView_edgeeffect_color, color);
51 | a.recycle();
52 | }
53 | setEdgeEffectColor(color);
54 | }
55 |
56 | public void setEdgeEffectColor(int edgeEffectColor) {
57 | ((ContextWrapperEdgeEffect) getContext()).setEdgeEffectColor(edgeEffectColor);
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/EdgeEffectOverrideSample/src/main/java/uk/co/androidalliance/edgeeffectoverride/sample/ExpandableListViewActivity.java:
--------------------------------------------------------------------------------
1 | package uk.co.androidalliance.edgeeffectoverride.sample;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 | import android.widget.SimpleExpandableListAdapter;
6 |
7 | import java.util.ArrayList;
8 | import java.util.HashMap;
9 | import java.util.List;
10 | import java.util.Map;
11 |
12 | import uk.co.androidalliance.edgeeffectoverride.ExpandableListView;
13 |
14 | public class ExpandableListViewActivity extends Activity {
15 |
16 | private static final String NAME = "NAME";
17 | private static final String IS_EVEN = "IS_EVEN";
18 |
19 | @Override
20 | protected void onCreate(Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | setContentView(R.layout.expandablelistview_layout);
23 |
24 | //this comes from android samples
25 | List