添加CalendarView模块同时添加实体类CalendarDay及其相关类 #9
Merged
p28679143
merged 1 commits from p86231950/ShowMe:master
into master
4 years ago
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="CompilerConfiguration">
|
<component name="CompilerConfiguration">
|
||||||
<bytecodeTargetLevel target="16" />
|
<bytecodeTargetLevel target="11" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</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'
|
include ':app'
|
||||||
rootProject.name = "My Application"
|
rootProject.name = "My Application"
|
||||||
|
include ':CalendarView'
|
||||||
|
Loading…
Reference in new issue