parent
							
								
									ee240c206c
								
							
						
					
					
						commit
						0a17871cf8
					
				@ -1,6 +1,6 @@
 | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||
<project version="4">
 | 
				
			||||
  <component name="CompilerConfiguration">
 | 
				
			||||
    <bytecodeTargetLevel target="16" />
 | 
				
			||||
    <bytecodeTargetLevel target="11" />
 | 
				
			||||
  </component>
 | 
				
			||||
</project>
 | 
				
			||||
@ -0,0 +1,10 @@
 | 
				
			||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||
<project version="4">
 | 
				
			||||
  <component name="RunConfigurationProducerService">
 | 
				
			||||
    <option name="ignoredProducers">
 | 
				
			||||
      <set>
 | 
				
			||||
        <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
 | 
				
			||||
      </set>
 | 
				
			||||
    </option>
 | 
				
			||||
  </component>
 | 
				
			||||
</project>
 | 
				
			||||
@ -0,0 +1 @@
 | 
				
			||||
/build
 | 
				
			||||
@ -0,0 +1,38 @@
 | 
				
			||||
plugins {
 | 
				
			||||
    id 'com.android.library'
 | 
				
			||||
}
 | 
				
			||||
 | 
				
			||||
android {
 | 
				
			||||
    compileSdkVersion 30
 | 
				
			||||
    buildToolsVersion "30.0.3"
 | 
				
			||||
 | 
				
			||||
    defaultConfig {
 | 
				
			||||
        minSdkVersion 29
 | 
				
			||||
        targetSdkVersion 30
 | 
				
			||||
        versionCode 1
 | 
				
			||||
        versionName "1.0"
 | 
				
			||||
 | 
				
			||||
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 | 
				
			||||
        consumerProguardFiles "consumer-rules.pro"
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    buildTypes {
 | 
				
			||||
        release {
 | 
				
			||||
            minifyEnabled false
 | 
				
			||||
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
 | 
				
			||||
        }
 | 
				
			||||
    }
 | 
				
			||||
    compileOptions {
 | 
				
			||||
        sourceCompatibility JavaVersion.VERSION_1_8
 | 
				
			||||
        targetCompatibility JavaVersion.VERSION_1_8
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
 | 
				
			||||
dependencies {
 | 
				
			||||
 | 
				
			||||
    implementation 'androidx.appcompat:appcompat:1.3.0'
 | 
				
			||||
    implementation 'com.google.android.material:material:1.3.0'
 | 
				
			||||
    testImplementation 'junit:junit:4.+'
 | 
				
			||||
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
 | 
				
			||||
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
 | 
				
			||||
}
 | 
				
			||||
@ -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
 | 
				
			||||
@ -0,0 +1,26 @@
 | 
				
			||||
package com.idealist.calendarview;
 | 
				
			||||
 | 
				
			||||
import android.content.Context;
 | 
				
			||||
 | 
				
			||||
import androidx.test.platform.app.InstrumentationRegistry;
 | 
				
			||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
 | 
				
			||||
 | 
				
			||||
import org.junit.Test;
 | 
				
			||||
import org.junit.runner.RunWith;
 | 
				
			||||
 | 
				
			||||
import static org.junit.Assert.*;
 | 
				
			||||
 | 
				
			||||
/**
 | 
				
			||||
 * Instrumented test, which will execute on an Android device.
 | 
				
			||||
 *
 | 
				
			||||
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 | 
				
			||||
 */
 | 
				
			||||
@RunWith(AndroidJUnit4.class)
 | 
				
			||||
public class ExampleInstrumentedTest {
 | 
				
			||||
    @Test
 | 
				
			||||
    public void useAppContext() {
 | 
				
			||||
        // Context of the app under test.
 | 
				
			||||
        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
 | 
				
			||||
        assertEquals("com.idealist.calendarview.test", appContext.getPackageName());
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,5 @@
 | 
				
			||||
<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||
    package="com.idealist.calendarview">
 | 
				
			||||
 | 
				
			||||
</manifest>
 | 
				
			||||
@ -0,0 +1,86 @@
 | 
				
			||||
package com.idealist.calendarview;
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
public class CalendarAttr {
 | 
				
			||||
 | 
				
			||||
    static int RecTop;
 | 
				
			||||
 | 
				
			||||
    private int mItemHeight;
 | 
				
			||||
 | 
				
			||||
    private int mRowCount;
 | 
				
			||||
 | 
				
			||||
    private int mViewHeight;
 | 
				
			||||
 | 
				
			||||
    private int mCalendarType;
 | 
				
			||||
 | 
				
			||||
    private int mTextSize;
 | 
				
			||||
 | 
				
			||||
    private int mScrollLevel;
 | 
				
			||||
 | 
				
			||||
    private int TouchSlop;
 | 
				
			||||
 | 
				
			||||
    public CalendarAttr() {
 | 
				
			||||
        mItemHeight = State.DEFAULT_ITEM_HEIGHT;
 | 
				
			||||
        mTextSize = State.DEFAULT_TEXT_SIZE;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getRowCount() {
 | 
				
			||||
        return mRowCount;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    private void setRowCount(int mRowCount) {
 | 
				
			||||
        this.mRowCount = mRowCount;
 | 
				
			||||
        mViewHeight = mItemHeight * mRowCount;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getItemHeight() {
 | 
				
			||||
        return mItemHeight;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setItemHeight(int mItemHeight) {
 | 
				
			||||
        this.mItemHeight = mItemHeight;
 | 
				
			||||
        mViewHeight = mRowCount * mItemHeight;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getViewHeight() {
 | 
				
			||||
        return mViewHeight;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setViewHeight(int mViewHeight) {
 | 
				
			||||
        this.mViewHeight = mViewHeight;
 | 
				
			||||
        mItemHeight = mViewHeight / mRowCount;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getTextSize() {
 | 
				
			||||
        return mTextSize;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setTextSize(int mTextSize) {
 | 
				
			||||
        this.mTextSize = mTextSize;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getCalendarType() {
 | 
				
			||||
        return mCalendarType;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setCalendarType(int mCalendarType) {
 | 
				
			||||
        this.mCalendarType = mCalendarType;
 | 
				
			||||
        setRowCount((mCalendarType == State.VIEW_WEEK) ? 1 : 6);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public static int getRecTop() {
 | 
				
			||||
        return RecTop;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public static void setRecTop(int recTop) {
 | 
				
			||||
        RecTop = recTop;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getScrollLevel() {
 | 
				
			||||
        return mScrollLevel;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setScrollLevel(int mScrollLevel) {
 | 
				
			||||
        this.mScrollLevel = mScrollLevel;
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,97 @@
 | 
				
			||||
package com.idealist.calendarview;
 | 
				
			||||
 | 
				
			||||
import androidx.annotation.NonNull;
 | 
				
			||||
import androidx.annotation.Nullable;
 | 
				
			||||
 | 
				
			||||
public class CalendarDay {
 | 
				
			||||
    private int year;
 | 
				
			||||
 | 
				
			||||
    private int month;
 | 
				
			||||
 | 
				
			||||
    private int day;
 | 
				
			||||
 | 
				
			||||
    private boolean isCurrDay;
 | 
				
			||||
 | 
				
			||||
    private boolean markSchedule;
 | 
				
			||||
 | 
				
			||||
    private int mMonthState;
 | 
				
			||||
 | 
				
			||||
    private int mSelectState;
 | 
				
			||||
 | 
				
			||||
    public CalendarDay() {
 | 
				
			||||
        ;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getYear() {
 | 
				
			||||
        return year;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setYear(int year) {
 | 
				
			||||
        this.year = year;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getMonth() {
 | 
				
			||||
        return month;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setMonth(int month) {
 | 
				
			||||
        this.month = month;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getDay() {
 | 
				
			||||
        return day;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setDay(int day) {
 | 
				
			||||
        this.day = day;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public boolean isCurrDay() {
 | 
				
			||||
        return isCurrDay;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setCurrDay(boolean currDay) {
 | 
				
			||||
        this.isCurrDay = currDay;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getMonthState() {
 | 
				
			||||
        return mMonthState;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setMonthState(int mMonthState) {
 | 
				
			||||
        this.mMonthState = mMonthState;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public int getSelectState() {
 | 
				
			||||
        return mSelectState;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setSelectState(int mSelectState) {
 | 
				
			||||
        this.mSelectState = mSelectState;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public boolean isMarkSchedule() {
 | 
				
			||||
        return markSchedule;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    public void setMarkSchedule(boolean markSchedule) {
 | 
				
			||||
        this.markSchedule = markSchedule;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @Override
 | 
				
			||||
    public boolean equals(@Nullable Object obj) {
 | 
				
			||||
        if (obj instanceof CalendarDay) {
 | 
				
			||||
            return ((CalendarDay) obj).day == this.day && ((CalendarDay) obj).month == this.month &&
 | 
				
			||||
                    ((CalendarDay) obj).year == this.year;
 | 
				
			||||
        }
 | 
				
			||||
        return super.equals(obj);
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
    @NonNull
 | 
				
			||||
    @Override
 | 
				
			||||
    public String toString() {
 | 
				
			||||
        return this.year + "-" + this.month + "-" + this.day;
 | 
				
			||||
    }
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,36 @@
 | 
				
			||||
package com.idealist.calendarview;
 | 
				
			||||
 | 
				
			||||
public final class State {
 | 
				
			||||
 | 
				
			||||
    public static final int DAY_UN_SELECT = 0;
 | 
				
			||||
 | 
				
			||||
    public static final int DAY_SELECT = 1;
 | 
				
			||||
 | 
				
			||||
    public static final int DAY_CURR_MONTH = 0;
 | 
				
			||||
 | 
				
			||||
    public static final int DAY_PAST_MONTH = -1;
 | 
				
			||||
 | 
				
			||||
    public static final int DAY_NEXT_MONTH = 1;
 | 
				
			||||
 | 
				
			||||
    public static final int VIEW_WEEK = 1;
 | 
				
			||||
 | 
				
			||||
    public static final int VIEW_MONTH = 2;
 | 
				
			||||
 | 
				
			||||
    public static final int VIEW_FULL = 3;
 | 
				
			||||
 | 
				
			||||
    public static final int LEVEL_TOP = 1;
 | 
				
			||||
 | 
				
			||||
    public static final int LEVEL_MEDIUM = 2;
 | 
				
			||||
 | 
				
			||||
    public static final int LEVEL_BOTTOM = 3;
 | 
				
			||||
 | 
				
			||||
    public static final int DEFAULT_ITEM_HEIGHT = 180;
 | 
				
			||||
 | 
				
			||||
    public static final int DEFAULT_TEXT_SIZE = 80;
 | 
				
			||||
 | 
				
			||||
    public static int DEFAULT_ITEM_HEIGHT_FULL;
 | 
				
			||||
 | 
				
			||||
    public static void setDefaultItemHeightFull(int defaultItemHeightFull) {
 | 
				
			||||
        DEFAULT_ITEM_HEIGHT_FULL = defaultItemHeightFull;
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -0,0 +1,17 @@
 | 
				
			||||
package com.idealist.calendarview;
 | 
				
			||||
 | 
				
			||||
import org.junit.Test;
 | 
				
			||||
 | 
				
			||||
import static org.junit.Assert.*;
 | 
				
			||||
 | 
				
			||||
/**
 | 
				
			||||
 * Example local unit test, which will execute on the development machine (host).
 | 
				
			||||
 *
 | 
				
			||||
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 | 
				
			||||
 */
 | 
				
			||||
public class ExampleUnitTest {
 | 
				
			||||
    @Test
 | 
				
			||||
    public void addition_isCorrect() {
 | 
				
			||||
        assertEquals(4, 2 + 2);
 | 
				
			||||
    }
 | 
				
			||||
}
 | 
				
			||||
@ -1,2 +1,3 @@
 | 
				
			||||
include ':app'
 | 
				
			||||
rootProject.name = "My Application"
 | 
				
			||||
rootProject.name = "My Application"
 | 
				
			||||
include ':CalendarView'
 | 
				
			||||
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue