diff options
60 files changed, 1702 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b90485a --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +*.iml +.gradle +/local.properties +/.idea/caches/build_file_checksums.ser +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.idea/
\ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..209a7d3 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,26 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 28 + defaultConfig { + applicationId "moe.yuuta.pageindicator" + minSdkVersion 21 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation project(':library') + implementation 'androidx.viewpager:viewpager:1.0.0-rc02' + implementation 'androidx.fragment:fragment:1.0.0-rc02' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# 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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..4f2b7a3 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + package="moe.yuuta.pageindicator"> + + <application + android:allowBackup="true" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:supportsRtl="true" + android:theme="@style/AppTheme" + tools:ignore="GoogleAppIndexingWarning"> + <activity android:name=".MainActivity"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest>
\ No newline at end of file diff --git a/app/src/main/java/moe/yuuta/pageindicator/MainActivity.java b/app/src/main/java/moe/yuuta/pageindicator/MainActivity.java new file mode 100644 index 0000000..e314737 --- /dev/null +++ b/app/src/main/java/moe/yuuta/pageindicator/MainActivity.java @@ -0,0 +1,94 @@ +package moe.yuuta.pageindicator; + +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + +import com.android.systemui.qr.PageIndicator; + +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentPagerAdapter; +import androidx.viewpager.widget.ViewPager; + +public class MainActivity extends FragmentActivity { + private PageIndicator mPageIndicator; + private float mPageIndicatorPosition; + private int mNumPages; + private ViewPager mPager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + mPager = findViewById(R.id.pager); + setPageIndicator((PageIndicator) findViewById(R.id.indicator)); + mPager.addOnPageChangeListener(this.mOnPageChangeListener); + mPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { + @Override + public Fragment getItem(int position) { + return PageFragment.newInstance(position); + } + + @Override + public int getCount() { + return mNumPages; + } + }); + Toast.makeText(this, "Tap 'ADD' to add pages!", Toast.LENGTH_SHORT).show(); + } + + @Override + protected void onPostCreate(@Nullable Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + addPage(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + menu.add(0, 0, 0, "Add").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == 0) { + addPage(); + return true; + } + return super.onOptionsItemSelected(item); + } + + private void addPage () { + if (mPager.getAdapter() == null) { + // onCreate not finished, just skip + return; + } + mNumPages++; + mPager.getAdapter().notifyDataSetChanged(); + mPageIndicator.setNumPages(mNumPages); + } + + public void setPageIndicator(PageIndicator indicator) { + mPageIndicator = indicator; + mPageIndicator.setNumPages(mNumPages); + mPageIndicator.setLocation(mPageIndicatorPosition); + } + + private final ViewPager.OnPageChangeListener mOnPageChangeListener = + new ViewPager.SimpleOnPageChangeListener() { + @Override + public void onPageSelected(int position) { + } + + @Override + public void onPageScrolled(int position, float positionOffset, + int positionOffsetPixels) { + if (mPageIndicator == null) return; + mPageIndicatorPosition = position + positionOffset; + mPageIndicator.setLocation(mPageIndicatorPosition); + } + }; +} diff --git a/app/src/main/java/moe/yuuta/pageindicator/PageFragment.java b/app/src/main/java/moe/yuuta/pageindicator/PageFragment.java new file mode 100644 index 0000000..5524540 --- /dev/null +++ b/app/src/main/java/moe/yuuta/pageindicator/PageFragment.java @@ -0,0 +1,43 @@ +package moe.yuuta.pageindicator; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +public class PageFragment extends Fragment { + private static final String EXTRA_PAGE_INDEX = PageFragment.class.getName() + ".EXTRA_PAGE_INDEX"; + + private int index; + + static PageFragment newInstance (int index) { + Bundle args = new Bundle(); + PageFragment fragment = new PageFragment(); + + args.putInt(EXTRA_PAGE_INDEX, index); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() == null) return; + this.index = getArguments().getInt(EXTRA_PAGE_INDEX); + } + + @SuppressLint("SetTextI18n") + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_page, container, false); + ((TextView) view.findViewById(R.id.text_page_digit)).setText(Integer.toString(index)); + return view; + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..e17567e --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".MainActivity"> + <androidx.viewpager.widget.ViewPager + android:id="@+id/pager" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + </androidx.viewpager.widget.ViewPager> + <com.android.systemui.qr.PageIndicator + android:id="@+id/indicator" + android:layout_width="match_parent" + android:layout_height="48dp" + android:layout_gravity="bottom" + android:layout_marginBottom="24dp" + android:focusable="true" + android:gravity="center" + android:importantForAccessibility="yes"/> +</FrameLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_page.xml b/app/src/main/res/layout/fragment_page.xml new file mode 100644 index 0000000..0b6eec8 --- /dev/null +++ b/app/src/main/res/layout/fragment_page.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <TextView + android:id="@+id/text_page_digit" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:textAppearance="@android:style/TextAppearance.Material.Headline"/> +</FrameLayout>
\ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..898f3ed --- /dev/null +++ b/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..64ba76f --- /dev/null +++ b/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..e5ed465 --- /dev/null +++ b/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..b0907ca --- /dev/null +++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..2c18de9 --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..69b2233 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <color name="colorPrimary">#008577</color> + <color name="colorPrimaryDark">#00574B</color> + <color name="colorAccent">#D81B60</color> +</resources> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..054390a --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">PageIndicator</string> +</resources> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..5e8b5e3 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,13 @@ +<resources> + + <!-- Base application theme. --> + <style name="AppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar"> + <!-- Customize your theme here. --> + <item name="android:colorPrimary">@color/colorPrimary</item> + <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> + <item name="android:colorAccent">@color/colorAccent</item> + <!-- use colorControlActivated to customize indicator's color! --> + <item name="android:colorControlActivated">?android:colorPrimary</item> + </style> + +</resources> diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..00850bc --- /dev/null +++ b/build.gradle @@ -0,0 +1,25 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.3.0-alpha08' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..c73d239 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,19 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 0000000..f6b961f --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..43d9b73 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sat Sep 08 19:53:30 PDT 2018 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..e95643d --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/library/.gitignore b/library/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/library/.gitignore @@ -0,0 +1 @@ +/build diff --git a/library/build.gradle b/library/build.gradle new file mode 100644 index 0000000..a50f756 --- /dev/null +++ b/library/build.gradle @@ -0,0 +1,29 @@ +apply plugin: 'com.android.library' + +android { + compileSdkVersion 28 + + + + defaultConfig { + minSdkVersion 21 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) +} diff --git a/library/proguard-rules.pro b/library/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/library/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# 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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/library/src/main/AndroidManifest.xml b/library/src/main/AndroidManifest.xml new file mode 100644 index 0000000..d7b035f --- /dev/null +++ b/library/src/main/AndroidManifest.xml @@ -0,0 +1 @@ +<manifest package="moe.yuuta.lib.pageindicator" /> diff --git a/library/src/main/java/com/android/systemui/qr/PageIndicator.java b/library/src/main/java/com/android/systemui/qr/PageIndicator.java new file mode 100644 index 0000000..0205e71 --- /dev/null +++ b/library/src/main/java/com/android/systemui/qr/PageIndicator.java @@ -0,0 +1,239 @@ +package com.android.systemui.qr; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.TypedArray; +import android.graphics.drawable.AnimatedVectorDrawable; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import java.util.ArrayList; + +import moe.yuuta.lib.pageindicator.BuildConfig; +import moe.yuuta.lib.pageindicator.R; + +public class PageIndicator extends ViewGroup { + + private static final String TAG = "PageIndicator"; + // Note by Yuuta: [CHANGED] use BuildConfig instead of hardcoded value. + private static final boolean DEBUG = BuildConfig.DEBUG; + + private static final long ANIMATION_DURATION = 250; + + // The size of a single dot in relation to the whole animation. + private static final float SINGLE_SCALE = .4f; + + private static final float MINOR_ALPHA = .42f; + + private final ArrayList<Integer> mQueuedPositions = new ArrayList<>(); + + private final int mPageIndicatorWidth; + private final int mPageIndicatorHeight; + private final int mPageDotWidth; + + private int mPosition = -1; + private boolean mAnimating; + + public PageIndicator(Context context, AttributeSet attrs) { + super(context, attrs); + mPageIndicatorWidth = + (int) getContext().getResources().getDimension(R.dimen.qs_page_indicator_width); + mPageIndicatorHeight = + (int) getContext().getResources().getDimension(R.dimen.qs_page_indicator_height); + mPageDotWidth = (int) (mPageIndicatorWidth * SINGLE_SCALE); + } + + public void setNumPages(int numPages) { + setVisibility(numPages > 1 ? View.VISIBLE : View.GONE); + if (mAnimating) { + Log.w(TAG, "setNumPages during animation"); + } + while (numPages < getChildCount()) { + removeViewAt(getChildCount() - 1); + } + TypedArray array = getContext().obtainStyledAttributes( + new int[]{android.R.attr.colorControlActivated}); + int color = array.getColor(0, 0); + array.recycle(); + while (numPages > getChildCount()) { + ImageView v = new ImageView(getContext()); + v.setImageResource(R.drawable.minor_a_b); + v.setImageTintList(ColorStateList.valueOf(color)); + addView(v, new LayoutParams(mPageIndicatorWidth, mPageIndicatorHeight)); + } + // Refresh state. + setIndex(mPosition >> 1); + } + + public void setLocation(float location) { + int index = (int) location; + setContentDescription(getContext().getString(R.string.accessibility_quick_settings_page, + (index + 1), getChildCount())); + int position = index << 1 | ((location != index) ? 1 : 0); + if (DEBUG) Log.d(TAG, "setLocation " + location + " " + index + " " + position); + + int lastPosition = mPosition; + if (mQueuedPositions.size() != 0) { + lastPosition = mQueuedPositions.get(mQueuedPositions.size() - 1); + } + if (position == lastPosition) return; + if (mAnimating) { + if (DEBUG) Log.d(TAG, "Queueing transition to " + Integer.toHexString(position)); + mQueuedPositions.add(position); + return; + } + + setPosition(position); + } + + /** + * Note by Yuuta: [CHANGED] isUserVisible() has been ignored because it's a hidden api. + */ + private void setPosition(int position) { + if (Math.abs(mPosition - position) == 1) { + animate(mPosition, position); + } else { + if (DEBUG) Log.d(TAG, "Skipping animation " + mPosition + + " " + position); + setIndex(position >> 1); + } + mPosition = position; + } + + private void setIndex(int index) { + final int N = getChildCount(); + for (int i = 0; i < N; i++) { + ImageView v = (ImageView) getChildAt(i); + // Clear out any animation positioning. + v.setTranslationX(0); + v.setImageResource(R.drawable.major_a_b); + v.setAlpha(getAlpha(i == index)); + } + } + + private void animate(int from, int to) { + if (DEBUG) Log.d(TAG, "Animating from " + Integer.toHexString(from) + " to " + + Integer.toHexString(to)); + int fromIndex = from >> 1; + int toIndex = to >> 1; + + // Set the position of everything, then we will manually control the two views involved + // in the animation. + setIndex(fromIndex); + + boolean fromTransition = (from & 1) != 0; + boolean isAState = fromTransition ? from > to : from < to; + int firstIndex = Math.min(fromIndex, toIndex); + int secondIndex = Math.max(fromIndex, toIndex); + if (secondIndex == firstIndex) { + secondIndex++; + } + ImageView first = (ImageView) getChildAt(firstIndex); + ImageView second = (ImageView) getChildAt(secondIndex); + if (first == null || second == null) { + // may happen during reInflation or other weird cases + return; + } + // Lay the two views on top of each other. + second.setTranslationX(first.getX() - second.getX()); + + playAnimation(first, getTransition(fromTransition, isAState, false)); + first.setAlpha(getAlpha(false)); + + playAnimation(second, getTransition(fromTransition, isAState, true)); + second.setAlpha(getAlpha(true)); + + mAnimating = true; + } + + private float getAlpha(boolean isMajor) { + return isMajor ? 1 : MINOR_ALPHA; + } + + private void playAnimation(ImageView imageView, int res) { + final AnimatedVectorDrawable avd = (AnimatedVectorDrawable) getContext().getDrawable(res); + imageView.setImageDrawable(avd); + // Note by Yuuta: [CHANGED] forceAnimationOnUI() has been ignored because it's a hidden api. + // avd.forceAnimationOnUI(); + avd.start(); + // TODO: Figure out how to user an AVD animation callback instead, which doesn't + // seem to be working right now... + postDelayed(mAnimationDone, ANIMATION_DURATION); + } + + private int getTransition(boolean fromB, boolean isMajorAState, boolean isMajor) { + if (isMajor) { + if (fromB) { + if (isMajorAState) { + return R.drawable.major_b_a_animation; + } else { + return R.drawable.major_b_c_animation; + } + } else { + if (isMajorAState) { + return R.drawable.major_a_b_animation; + } else { + return R.drawable.major_c_b_animation; + } + } + } else { + if (fromB) { + if (isMajorAState) { + return R.drawable.minor_b_c_animation; + } else { + return R.drawable.minor_b_a_animation; + } + } else { + if (isMajorAState) { + return R.drawable.minor_c_b_animation; + } else { + return R.drawable.minor_a_b_animation; + } + } + } + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + final int N = getChildCount(); + if (N == 0) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + return; + } + final int widthChildSpec = MeasureSpec.makeMeasureSpec(mPageIndicatorWidth, + MeasureSpec.EXACTLY); + final int heightChildSpec = MeasureSpec.makeMeasureSpec(mPageIndicatorHeight, + MeasureSpec.EXACTLY); + for (int i = 0; i < N; i++) { + getChildAt(i).measure(widthChildSpec, heightChildSpec); + } + int width = (mPageIndicatorWidth - mPageDotWidth) * (N - 1) + mPageDotWidth; + setMeasuredDimension(width, mPageIndicatorHeight); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + final int N = getChildCount(); + if (N == 0) { + return; + } + for (int i = 0; i < N; i++) { + int left = (mPageIndicatorWidth - mPageDotWidth) * i; + getChildAt(i).layout(left, 0, mPageIndicatorWidth + left, mPageIndicatorHeight); + } + } + + private final Runnable mAnimationDone = new Runnable() { + @Override + public void run() { + if (DEBUG) Log.d(TAG, "onAnimationEnd - queued: " + mQueuedPositions.size()); + mAnimating = false; + if (mQueuedPositions.size() != 0) { + setPosition(mQueuedPositions.remove(0)); + } + } + }; +} diff --git a/library/src/main/res/anim/major_a_b_dot_01_animation.xml b/library/src/main/res/anim/major_a_b_dot_01_animation.xml new file mode 100644 index 0000000..b5bb4dc --- /dev/null +++ b/library/src/main/res/anim/major_a_b_dot_01_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 3.25,4.0 c 0.79167,0.0 3.95833,0.0 4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/major_a_b_dot_animation.xml b/library/src/main/res/anim/major_a_b_dot_animation.xml new file mode 100644 index 0000000..6443167 --- /dev/null +++ b/library/src/main/res/anim/major_a_b_dot_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:valueFrom="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueTo="M -4.75,-2.75 l 9.5,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l -9.5,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/major_b_a_dot_01_animation.xml b/library/src/main/res/anim/major_b_a_dot_01_animation.xml new file mode 100644 index 0000000..2e0a4fa --- /dev/null +++ b/library/src/main/res/anim/major_b_a_dot_01_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 8.0,4.0 c -0.79167,0.0 -3.95833,0.0 -4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/major_b_a_dot_animation.xml b/library/src/main/res/anim/major_b_a_dot_animation.xml new file mode 100644 index 0000000..731c87c --- /dev/null +++ b/library/src/main/res/anim/major_b_a_dot_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:valueFrom="M -4.75,-2.75 l 9.5,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l -9.5,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueTo="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/major_b_c_dot_01_animation.xml b/library/src/main/res/anim/major_b_c_dot_01_animation.xml new file mode 100644 index 0000000..e8c2687 --- /dev/null +++ b/library/src/main/res/anim/major_b_c_dot_01_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 8.0,4.0 c 0.79167,0.0 3.95833,0.0 4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/major_b_c_dot_animation.xml b/library/src/main/res/anim/major_b_c_dot_animation.xml new file mode 100644 index 0000000..731c87c --- /dev/null +++ b/library/src/main/res/anim/major_b_c_dot_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:valueFrom="M -4.75,-2.75 l 9.5,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l -9.5,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueTo="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/major_c_b_dot_01_animation.xml b/library/src/main/res/anim/major_c_b_dot_01_animation.xml new file mode 100644 index 0000000..d0174bc --- /dev/null +++ b/library/src/main/res/anim/major_c_b_dot_01_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 12.75,4.0 c -0.79167,0.0 -3.95833,0.0 -4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/major_c_b_dot_animation.xml b/library/src/main/res/anim/major_c_b_dot_animation.xml new file mode 100644 index 0000000..6443167 --- /dev/null +++ b/library/src/main/res/anim/major_c_b_dot_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:valueFrom="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueTo="M -4.75,-2.75 l 9.5,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l -9.5,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/minor_a_b_dot_02_animation.xml b/library/src/main/res/anim/minor_a_b_dot_02_animation.xml new file mode 100644 index 0000000..b5bb4dc --- /dev/null +++ b/library/src/main/res/anim/minor_a_b_dot_02_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 3.25,4.0 c 0.79167,0.0 3.95833,0.0 4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/minor_b_a_dot_02_animation.xml b/library/src/main/res/anim/minor_b_a_dot_02_animation.xml new file mode 100644 index 0000000..2e0a4fa --- /dev/null +++ b/library/src/main/res/anim/minor_b_a_dot_02_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 8.0,4.0 c -0.79167,0.0 -3.95833,0.0 -4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/minor_b_c_dot_02_animation.xml b/library/src/main/res/anim/minor_b_c_dot_02_animation.xml new file mode 100644 index 0000000..e8c2687 --- /dev/null +++ b/library/src/main/res/anim/minor_b_c_dot_02_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 8.0,4.0 c 0.79167,0.0 3.95833,0.0 4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/anim/minor_c_b_dot_02_animation.xml b/library/src/main/res/anim/minor_c_b_dot_02_animation.xml new file mode 100644 index 0000000..d0174bc --- /dev/null +++ b/library/src/main/res/anim/minor_c_b_dot_02_animation.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 12.75,4.0 c -0.79167,0.0 -3.95833,0.0 -4.75,0.0" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/drawable/major_a_b.xml b/library/src/main/res/drawable/major_a_b.xml new file mode 100644 index 0000000..45386f9 --- /dev/null +++ b/library/src/main/res/drawable/major_a_b.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="major_a_b" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" + android:tint="?android:attr/colorControlNormal"> + <group + android:name="dot_01" + android:translateX="3.25" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/major_a_b_animation.xml b/library/src/main/res/drawable/major_a_b_animation.xml new file mode 100644 index 0000000..74d7544 --- /dev/null +++ b/library/src/main/res/drawable/major_a_b_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/major_a_b" > + <target + android:name="dot_01" + android:animation="@anim/major_a_b_dot_01_animation" /> + <target + android:name="dot" + android:animation="@anim/major_a_b_dot_animation" /> +</animated-vector> diff --git a/library/src/main/res/drawable/major_b_a.xml b/library/src/main/res/drawable/major_b_a.xml new file mode 100644 index 0000000..4fcff0c --- /dev/null +++ b/library/src/main/res/drawable/major_b_a.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="major_b_a" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" + android:tint="?android:attr/colorControlNormal" > + <group + android:name="dot_01" + android:translateX="8" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M -4.75,-2.75 l 9.5,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l -9.5,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/major_b_a_animation.xml b/library/src/main/res/drawable/major_b_a_animation.xml new file mode 100644 index 0000000..cf446e6 --- /dev/null +++ b/library/src/main/res/drawable/major_b_a_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/major_b_a" > + <target + android:name="dot_01" + android:animation="@anim/major_b_a_dot_01_animation" /> + <target + android:name="dot" + android:animation="@anim/major_b_a_dot_animation" /> +</animated-vector> diff --git a/library/src/main/res/drawable/major_b_a_dot_animation.xml b/library/src/main/res/drawable/major_b_a_dot_animation.xml new file mode 100644 index 0000000..731c87c --- /dev/null +++ b/library/src/main/res/drawable/major_b_a_dot_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="250" + android:propertyName="pathData" + android:valueFrom="M -4.75,-2.75 l 9.5,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l -9.5,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueTo="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/library/src/main/res/drawable/major_b_c.xml b/library/src/main/res/drawable/major_b_c.xml new file mode 100644 index 0000000..c03a8d5 --- /dev/null +++ b/library/src/main/res/drawable/major_b_c.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="major_b_c" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" + android:tint="?android:attr/colorControlNormal" > + <group + android:name="dot_01" + android:translateX="8" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M -4.75,-2.75 l 9.5,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l -9.5,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/major_b_c_animation.xml b/library/src/main/res/drawable/major_b_c_animation.xml new file mode 100644 index 0000000..38e12f4 --- /dev/null +++ b/library/src/main/res/drawable/major_b_c_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/major_b_c" > + <target + android:name="dot_01" + android:animation="@anim/major_b_c_dot_01_animation" /> + <target + android:name="dot" + android:animation="@anim/major_b_c_dot_animation" /> +</animated-vector> diff --git a/library/src/main/res/drawable/major_c_b.xml b/library/src/main/res/drawable/major_c_b.xml new file mode 100644 index 0000000..9e4e245 --- /dev/null +++ b/library/src/main/res/drawable/major_c_b.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="major_c_b" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" + android:tint="?android:attr/colorControlNormal" > + <group + android:name="dot_01" + android:translateX="12.75" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/major_c_b_animation.xml b/library/src/main/res/drawable/major_c_b_animation.xml new file mode 100644 index 0000000..7f7850d --- /dev/null +++ b/library/src/main/res/drawable/major_c_b_animation.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/major_c_b" > + <target + android:name="dot_01" + android:animation="@anim/major_c_b_dot_01_animation" /> + <target + android:name="dot" + android:animation="@anim/major_c_b_dot_animation" /> +</animated-vector> diff --git a/library/src/main/res/drawable/minor_a_b.xml b/library/src/main/res/drawable/minor_a_b.xml new file mode 100644 index 0000000..4bb330c --- /dev/null +++ b/library/src/main/res/drawable/minor_a_b.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="minor_a_b" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" > + <group + android:name="dot_02" + android:translateX="3.25" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/minor_a_b_animation.xml b/library/src/main/res/drawable/minor_a_b_animation.xml new file mode 100644 index 0000000..50e20e7 --- /dev/null +++ b/library/src/main/res/drawable/minor_a_b_animation.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/minor_a_b" > + <target + android:name="dot_02" + android:animation="@anim/minor_a_b_dot_02_animation" /> +</animated-vector> diff --git a/library/src/main/res/drawable/minor_b_a.xml b/library/src/main/res/drawable/minor_b_a.xml new file mode 100644 index 0000000..f61deec --- /dev/null +++ b/library/src/main/res/drawable/minor_b_a.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="minor_b_a" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" > + <group + android:name="dot_02" + android:translateX="8" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/minor_b_a_animation.xml b/library/src/main/res/drawable/minor_b_a_animation.xml new file mode 100644 index 0000000..460a2f7 --- /dev/null +++ b/library/src/main/res/drawable/minor_b_a_animation.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/minor_b_a" > + <target + android:name="dot_02" + android:animation="@anim/minor_b_a_dot_02_animation" /> +</animated-vector> diff --git a/library/src/main/res/drawable/minor_b_c.xml b/library/src/main/res/drawable/minor_b_c.xml new file mode 100644 index 0000000..867af6d --- /dev/null +++ b/library/src/main/res/drawable/minor_b_c.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="minor_b_c" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" > + <group + android:name="dot_02" + android:translateX="8" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/minor_b_c_animation.xml b/library/src/main/res/drawable/minor_b_c_animation.xml new file mode 100644 index 0000000..53b8bd6 --- /dev/null +++ b/library/src/main/res/drawable/minor_b_c_animation.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/minor_b_c" > + <target + android:name="dot_02" + android:animation="@anim/minor_b_c_dot_02_animation" /> +</animated-vector> diff --git a/library/src/main/res/drawable/minor_c_b.xml b/library/src/main/res/drawable/minor_c_b.xml new file mode 100644 index 0000000..b2e33cf --- /dev/null +++ b/library/src/main/res/drawable/minor_c_b.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="minor_c_b" + android:width="16dp" + android:viewportWidth="16" + android:height="8dp" + android:viewportHeight="8" > + <group + android:name="dot_02" + android:translateX="12.75" + android:translateY="4" > + <group + android:name="dot_group" > + <path + android:name="dot" + android:fillColor="#FFFFFFFF" + android:pathData="M 0.0,-2.75 l 0.0,0.0 c 1.51878306195,0.0 2.75,1.23121693805 2.75,2.75 l 0.0,0.0 c 0.0,1.51878306195 -1.23121693805,2.75 -2.75,2.75 l 0.0,0.0 c -1.51878306195,0.0 -2.75,-1.23121693805 -2.75,-2.75 l 0.0,0.0 c 0.0,-1.51878306195 1.23121693805,-2.75 2.75,-2.75 Z" /> + </group> + </group> +</vector> diff --git a/library/src/main/res/drawable/minor_c_b_animation.xml b/library/src/main/res/drawable/minor_c_b_animation.xml new file mode 100644 index 0000000..bf5e81e --- /dev/null +++ b/library/src/main/res/drawable/minor_c_b_animation.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/minor_c_b" > + <target + android:name="dot_02" + android:animation="@anim/minor_c_b_dot_02_animation" /> +</animated-vector> diff --git a/library/src/main/res/values/dimens.xml b/library/src/main/res/values/dimens.xml new file mode 100644 index 0000000..4f4226d --- /dev/null +++ b/library/src/main/res/values/dimens.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <dimen name="qs_page_indicator_width">16dp</dimen> + <dimen name="qs_page_indicator_height">8dp</dimen> + <dimen name="qs_detail_button_text_size">14sp</dimen> +</resources>
\ No newline at end of file diff --git a/library/src/main/res/values/strings.xml b/library/src/main/res/values/strings.xml new file mode 100644 index 0000000..99f7728 --- /dev/null +++ b/library/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- accessibility label for paging indicator in quick settings [CHAR LIMITi=NONE] --> + <string name="accessibility_quick_settings_page">Page <xliff:g name="current_page" example="1">%1$d</xliff:g> of <xliff:g name="num_pages" example="2">%2$d</xliff:g></string> +</resources>
\ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..3306997 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':app', ':library' |