parent
							
								
									a8bdc1609d
								
							
						
					
					
						commit
						ba2e3c0cfc
					
				| @ -0,0 +1,15 @@ | |||||||
|  | *.iml | ||||||
|  | .gradle | ||||||
|  | /local.properties | ||||||
|  | /.idea/caches | ||||||
|  | /.idea/libraries | ||||||
|  | /.idea/modules.xml | ||||||
|  | /.idea/workspace.xml | ||||||
|  | /.idea/navEditor.xml | ||||||
|  | /.idea/assetWizardSettings.xml | ||||||
|  | .DS_Store | ||||||
|  | /build | ||||||
|  | /captures | ||||||
|  | .externalNativeBuild | ||||||
|  | .cxx | ||||||
|  | local.properties | ||||||
| @ -0,0 +1,3 @@ | |||||||
|  | # Default ignored files | ||||||
|  | /shelf/ | ||||||
|  | /workspace.xml | ||||||
| @ -0,0 +1 @@ | |||||||
|  | learnhelper | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="CompilerConfiguration"> | ||||||
|  |     <bytecodeTargetLevel target="11" /> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
| @ -0,0 +1,20 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="GradleMigrationSettings" migrationVersion="1" /> | ||||||
|  |   <component name="GradleSettings"> | ||||||
|  |     <option name="linkedExternalProjectsSettings"> | ||||||
|  |       <GradleProjectSettings> | ||||||
|  |         <option name="testRunner" value="GRADLE" /> | ||||||
|  |         <option name="distributionType" value="DEFAULT_WRAPPED" /> | ||||||
|  |         <option name="externalProjectPath" value="$PROJECT_DIR$" /> | ||||||
|  |         <option name="modules"> | ||||||
|  |           <set> | ||||||
|  |             <option value="$PROJECT_DIR$" /> | ||||||
|  |             <option value="$PROJECT_DIR$/app" /> | ||||||
|  |           </set> | ||||||
|  |         </option> | ||||||
|  |         <option name="resolveModulePerSourceSet" value="false" /> | ||||||
|  |       </GradleProjectSettings> | ||||||
|  |     </option> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
| @ -0,0 +1,50 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="RemoteRepositoriesConfiguration"> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="central" /> | ||||||
|  |       <option name="name" value="Maven Central repository" /> | ||||||
|  |       <option name="url" value="https://repo1.maven.org/maven2" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="jboss.community" /> | ||||||
|  |       <option name="name" value="JBoss Community repository" /> | ||||||
|  |       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="maven3" /> | ||||||
|  |       <option name="name" value="maven3" /> | ||||||
|  |       <option name="url" value="https://oss.sonatype.org/content/repositories/snapshots" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="MavenRepo" /> | ||||||
|  |       <option name="name" value="MavenRepo" /> | ||||||
|  |       <option name="url" value="https://repo.maven.apache.org/maven2/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="BintrayJCenter" /> | ||||||
|  |       <option name="name" value="BintrayJCenter" /> | ||||||
|  |       <option name="url" value="https://jcenter.bintray.com/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="maven2" /> | ||||||
|  |       <option name="name" value="maven2" /> | ||||||
|  |       <option name="url" value="https://maven.fabric.io/public" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="maven4" /> | ||||||
|  |       <option name="name" value="maven4" /> | ||||||
|  |       <option name="url" value="https://developer.huawei.com/repo/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="maven" /> | ||||||
|  |       <option name="name" value="maven" /> | ||||||
|  |       <option name="url" value="https://jitpack.io" /> | ||||||
|  |     </remote-repository> | ||||||
|  |     <remote-repository> | ||||||
|  |       <option name="id" value="Google" /> | ||||||
|  |       <option name="name" value="Google" /> | ||||||
|  |       <option name="url" value="https://dl.google.com/dl/android/maven2/" /> | ||||||
|  |     </remote-repository> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
| @ -0,0 +1,29 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="DesignSurface"> | ||||||
|  |     <option name="filePathToZoomLevelMap"> | ||||||
|  |       <map> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable/btn_red_bg_4.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable/corners_item_shape_white_202000.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable/corners_org_item_shape.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable/corners_org_item_with.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable/ic_launcher_background.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable/main_rbtn_textcolor.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/drawable/rounded_button.xml" value="0.215625" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/layout/activity_add_table.xml" value="0.1068840579710145" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/layout/activity_login.xml" value="0.1068840579710145" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/layout/base_activity_layout.xml" value="0.1068840579710145" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/layout/table_item_layout.xml" value="0.1068840579710145" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/layout/tip_dialog_layout.xml" value="0.1068840579710145" /> | ||||||
|  |         <entry key="..\:/Users/15240/Desktop/assistance/assistance/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" value="0.215625" /> | ||||||
|  |       </map> | ||||||
|  |     </option> | ||||||
|  |   </component> | ||||||
|  |   <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK"> | ||||||
|  |     <output url="file://$PROJECT_DIR$/build/classes" /> | ||||||
|  |   </component> | ||||||
|  |   <component name="ProjectType"> | ||||||
|  |     <option name="id" value="Android" /> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
| @ -0,0 +1 @@ | |||||||
|  | /build | ||||||
| @ -0,0 +1,71 @@ | |||||||
|  | plugins { | ||||||
|  |     id 'com.android.application' | ||||||
|  | } | ||||||
|  | //apply plugin: 'com.android.application' | ||||||
|  | android { | ||||||
|  |     compileSdkVersion 30 | ||||||
|  |     buildToolsVersion "30.0.2" | ||||||
|  | 
 | ||||||
|  |     defaultConfig { | ||||||
|  |         applicationId "com.stu.assistant" | ||||||
|  |         minSdkVersion 16 | ||||||
|  |         targetSdkVersion 30 | ||||||
|  |         versionCode 1 | ||||||
|  |         versionName "1.0.0" | ||||||
|  | 
 | ||||||
|  |         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     buildTypes { | ||||||
|  |         release { | ||||||
|  |             minifyEnabled false | ||||||
|  |             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     compileOptions { | ||||||
|  |         sourceCompatibility JavaVersion.VERSION_1_8 | ||||||
|  |         targetCompatibility JavaVersion.VERSION_1_8 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     signingConfigs { | ||||||
|  |         release { | ||||||
|  |             storeFile file('I:\\code\\OtherAPP\\ScanCode\\standard.jks') | ||||||
|  |             storePassword 'cpscapp' | ||||||
|  |             keyAlias 'app' | ||||||
|  |             keyPassword 'cpscapp' | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | dependencies { | ||||||
|  | 
 | ||||||
|  |     implementation 'androidx.appcompat:appcompat:1.1.0' | ||||||
|  |     implementation 'com.google.android.material:material:1.1.0' | ||||||
|  |     implementation 'androidx.constraintlayout:constraintlayout:1.1.3' | ||||||
|  |     testImplementation 'junit:junit:4.+' | ||||||
|  |     androidTestImplementation 'androidx.test.ext:junit:1.1.1' | ||||||
|  |     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' | ||||||
|  | 
 | ||||||
|  |     implementation 'androidx.legacy:legacy-support-v4:1.0.0' | ||||||
|  |     implementation 'androidx.recyclerview:recyclerview:1.1.0' | ||||||
|  |     implementation 'com.gyf.immersionbar:immersionbar:3.0.0' | ||||||
|  | //    implementation 'com.android.support:multidex:1.0.2' | ||||||
|  | //    implementation 'com.google.code.gson:gson:2.8.2' | ||||||
|  |     implementation 'com.contrarywind:Android-PickerView:4.1.6'//时间选择器 | ||||||
|  |     implementation 'com.androidkun:XTabLayout:1.1.3' | ||||||
|  |     implementation 'com.github.bumptech.glide:glide:4.8.0' | ||||||
|  |     annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0' | ||||||
|  |     implementation 'com.lzy.net:okgo:3.0.4' | ||||||
|  |     implementation 'com.lzy.net:okrx2:2.0.2' | ||||||
|  |     implementation 'com.tencent.bugly:crashreport:latest.release' | ||||||
|  |     implementation 'com.yanyusong.y_divideritemdecoration:y_divideritemdecoration:2.0' | ||||||
|  | //    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' | ||||||
|  | //    implementation 'com.jakewharton:butterknife:10.2.1' | ||||||
|  | 
 | ||||||
|  |     implementation 'io.github.bmob:android-sdk:3.8.11' | ||||||
|  |     implementation 'io.reactivex.rxjava2:rxjava:2.2.8' | ||||||
|  |     implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' | ||||||
|  |     implementation 'com.squareup.okhttp3:okhttp:4.8.1' | ||||||
|  |     implementation 'com.squareup.okio:okio:2.2.2' | ||||||
|  |     implementation 'com.google.code.gson:gson:2.8.5' | ||||||
|  | } | ||||||
| @ -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.stu.assistant; | ||||||
|  | 
 | ||||||
|  | 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.stf.scancode", appContext.getPackageName()); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,333 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | import androidx.recyclerview.widget.LinearLayoutManager; | ||||||
|  | import androidx.recyclerview.widget.RecyclerView; | ||||||
|  | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; | ||||||
|  | import cn.bmob.v3.BmobQuery; | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.FindListener; | ||||||
|  | import cn.bmob.v3.listener.SaveListener; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.os.Handler; | ||||||
|  | import android.text.TextUtils; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.LinearLayout; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.adapter.TableListAdapter; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.AllTableListBean; | ||||||
|  | import com.stu.assistant.bean.TableBean; | ||||||
|  | import com.stu.assistant.constants.ConstansTableItemManager; | ||||||
|  | import com.stu.assistant.uitls.CalendarUtil; | ||||||
|  | import com.stu.assistant.uitls.DividerItemDecoration0Util; | ||||||
|  | import com.stu.assistant.uitls.LogUtils; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedNoClearUtil; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | import com.stu.assistant.view.MySwipeRefreshLayout; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | //添加课程表的页面
 | ||||||
|  | public class AddTableActivity extends BaseActivity { | ||||||
|  |     private RecyclerView mrv; | ||||||
|  |     private TableListAdapter adapter; | ||||||
|  |     private MySwipeRefreshLayout swip; | ||||||
|  |     private Handler handler; | ||||||
|  |     private ArrayList<TableBean> mList1; | ||||||
|  |     private ArrayList<TableBean> mList2; | ||||||
|  |     private ArrayList<TableBean> mList3; | ||||||
|  |     private ArrayList<TableBean> mList4; | ||||||
|  |     private ArrayList<TableBean> mList5; | ||||||
|  |     private TextView okBtn; | ||||||
|  |     private AllTableListBean bean; | ||||||
|  |     private int index = -1;//是否存在课程表id 的下标
 | ||||||
|  |     private LinearLayout backLay, lay; | ||||||
|  |     private TextView titleTv; | ||||||
|  |     private String tableIdMsg; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_add_table; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         Intent intent = getIntent(); | ||||||
|  |         bean = (AllTableListBean) intent.getSerializableExtra("bean"); | ||||||
|  | 
 | ||||||
|  |         swip = findViewById(R.id.swip_rf); | ||||||
|  |         mrv = findViewById(R.id.mrv); | ||||||
|  |         okBtn = findViewById(R.id.other_tv); | ||||||
|  |         titleTv = findViewById(R.id.title_tv); | ||||||
|  |         backLay = findViewById(R.id.back_lay); | ||||||
|  |         lay = findViewById(R.id.lay); | ||||||
|  |         handler = new Handler(); | ||||||
|  | 
 | ||||||
|  |         if (bean == null) { | ||||||
|  |             titleTv.setText("新建课表"); | ||||||
|  |             tableIdMsg = CalendarUtil.getInstance().getYMDHMSLine(); | ||||||
|  |         } else { | ||||||
|  |             titleTv.setText("课表详情"); | ||||||
|  |             tableIdMsg = bean.getTableIdMsg(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         LinearLayoutManager manager = new LinearLayoutManager(this); | ||||||
|  |         manager.setOrientation(LinearLayoutManager.VERTICAL); | ||||||
|  |         mrv.addItemDecoration(new DividerItemDecoration0Util(this, false)); | ||||||
|  |         mrv.setLayoutManager(manager); | ||||||
|  |         String string = SharedNoClearUtil.create(BaseApplion.application).getString(SharedConfig.isBg, SharedConfig.isBg_1); | ||||||
|  |         if (string.equals(SharedConfig.isBg_1)) { | ||||||
|  |             lay.setBackgroundResource(R.mipmap.ic_bg_1); | ||||||
|  |         } | ||||||
|  |         if (string.equals(SharedConfig.isBg_2)) { | ||||||
|  |             lay.setBackgroundResource(R.mipmap.ic_bg_2); | ||||||
|  |         } | ||||||
|  |         if (string.equals(SharedConfig.isBg_3)) { | ||||||
|  |             lay.setBackgroundResource(R.mipmap.ic_bg_3); | ||||||
|  |         } | ||||||
|  |         if (string.equals(SharedConfig.isBg_4)) { | ||||||
|  |             lay.setBackgroundResource(R.mipmap.ic_bg_4); | ||||||
|  |         } | ||||||
|  |         getData(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         // 刷新数据
 | ||||||
|  |         swip.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onRefresh() { | ||||||
|  |                 // 这里的作用是防止下拉刷新的时候还可以上拉加载
 | ||||||
|  |                 getData(); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |         okBtn.setOnClickListener(new View.OnClickListener() { | ||||||
|  | 
 | ||||||
|  |             private String tableIdMsg; | ||||||
|  | 
 | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 saveData(2); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |         backLay.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 showBackDialog(); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //保存数据
 | ||||||
|  |     private void saveData(int num) { | ||||||
|  |         ArrayList<TableBean> allList = new ArrayList<>(); | ||||||
|  |         allList.addAll(mList1); | ||||||
|  |         allList.addAll(mList2); | ||||||
|  |         allList.addAll(mList3); | ||||||
|  |         allList.addAll(mList4); | ||||||
|  |         allList.addAll(mList5); | ||||||
|  | 
 | ||||||
|  |         for (int i = 0; i < allList.size(); i++) { | ||||||
|  |             String tableIdMsg = allList.get(i).getTableIdMsg(); | ||||||
|  |             if (!TextUtils.isEmpty(tableIdMsg)) { | ||||||
|  |                 index = i; | ||||||
|  |                 break; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (num == 2) { | ||||||
|  |             if (index == -1) { | ||||||
|  |                 MyToast.show("请添加课程"); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             if (index == -1) { | ||||||
|  |                 finish(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (index != -1) { | ||||||
|  |             String tableIdMsg = allList.get(index).getTableIdMsg(); | ||||||
|  |             showProDialog("正在提交"); | ||||||
|  |             AllTableListBean allTableListBean = new AllTableListBean(); | ||||||
|  |             allTableListBean.setTableIdMsg(tableIdMsg); | ||||||
|  |             allTableListBean.setStuId(SharedUtil.create(BaseApplion.application).getString(SharedConfig.objectId)); | ||||||
|  |             allTableListBean.save(new SaveListener<String>() { | ||||||
|  |                 @Override | ||||||
|  |                 public void done(String s, BmobException e) { | ||||||
|  |                     dismissProDialog(); | ||||||
|  |                     if (e == null) { | ||||||
|  |                         MyToast.show("成功"); | ||||||
|  |                         setResult(12); | ||||||
|  |                         finish(); | ||||||
|  |                     } else { | ||||||
|  |                         MyToast.show("失败:" + e.getMessage() + "," + e.getErrorCode()); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void getData() { | ||||||
|  |         getNewData();//初始化课程表数据
 | ||||||
|  |         if (bean == null) {//新建
 | ||||||
|  |             setAdapter(mList1, mList2, mList3, mList4, mList5); | ||||||
|  |         } else {//查看详情
 | ||||||
|  |             showProDialog("正在查询"); | ||||||
|  |             BmobQuery<TableBean> query = new BmobQuery<>(); | ||||||
|  |             query.addWhereEqualTo("tableIdMsg", bean.getTableIdMsg()); | ||||||
|  |             query.findObjects(new FindListener<TableBean>() { | ||||||
|  |                 @Override | ||||||
|  |                 public void done(List<TableBean> list, BmobException e) { | ||||||
|  |                     LogUtils.i("list", "-stuId-findObjects-->" + new Gson().toJson(list)); | ||||||
|  |                     dismissProDialog(); | ||||||
|  |                     if (list == null) { | ||||||
|  |                         MyToast.show("暂无数据"); | ||||||
|  |                     } else { | ||||||
|  |                         optList(list); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     //初始化数据
 | ||||||
|  |     private void getNewData() { | ||||||
|  |         mList1 = new ArrayList<>(); | ||||||
|  |         mList2 = new ArrayList<>(); | ||||||
|  |         mList3 = new ArrayList<>(); | ||||||
|  |         mList4 = new ArrayList<>(); | ||||||
|  |         mList5 = new ArrayList<>(); | ||||||
|  | 
 | ||||||
|  |         TableBean tableBean = new TableBean(); | ||||||
|  |         tableBean.setTableNameMsg(""); | ||||||
|  |         tableBean.setTeacherName(""); | ||||||
|  |         tableBean.setAddress(""); | ||||||
|  |         tableBean.setTeacherId(""); | ||||||
|  |         for (int i = 0; i < 8; i++) { | ||||||
|  |             mList1.add(tableBean); | ||||||
|  |             mList2.add(tableBean); | ||||||
|  |             mList3.add(tableBean); | ||||||
|  |             mList4.add(tableBean); | ||||||
|  |             mList5.add(tableBean); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // 拼装成课程表需要的格式
 | ||||||
|  |     private void optList(List<TableBean> list) { | ||||||
|  |         for (int i = 0; i < list.size(); i++) { | ||||||
|  |             TableBean bean = list.get(i); | ||||||
|  |             if (bean.getDay() == ConstansTableItemManager.item_1) { | ||||||
|  |                 mList1.set(bean.getPos(), bean); | ||||||
|  |             } | ||||||
|  |             if (bean.getDay() == ConstansTableItemManager.item_2) { | ||||||
|  |                 mList2.set(bean.getPos(), bean); | ||||||
|  |             } | ||||||
|  |             if (bean.getDay() == ConstansTableItemManager.item_3) { | ||||||
|  |                 mList3.set(bean.getPos(), bean); | ||||||
|  |             } | ||||||
|  |             if (bean.getDay() == ConstansTableItemManager.item_4) { | ||||||
|  |                 mList4.set(bean.getPos(), bean); | ||||||
|  |             } | ||||||
|  |             if (bean.getDay() == ConstansTableItemManager.item_5) { | ||||||
|  |                 mList5.set(bean.getPos(), bean); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         setAdapter((ArrayList<TableBean>) mList1, (ArrayList<TableBean>) mList2, (ArrayList<TableBean>) mList3, (ArrayList<TableBean>) mList4, (ArrayList<TableBean>) mList5); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setAdapter(ArrayList<TableBean> mList1, ArrayList<TableBean> mList2, ArrayList<TableBean> mList3, ArrayList<TableBean> mList4, ArrayList<TableBean> mList5) { | ||||||
|  | 
 | ||||||
|  |         if (adapter == null) { | ||||||
|  |             adapter = new TableListAdapter(this); | ||||||
|  |             adapter.setList(mList1, mList2, mList3, mList4, mList5); | ||||||
|  |             mrv.setAdapter(adapter); | ||||||
|  |             adapter.setOnItemClickListeners(new TableListAdapter.OnItemClickListeners() { | ||||||
|  |                 @Override | ||||||
|  |                 public void itemBean(int pos, TableBean tableBean, int day) { | ||||||
|  |                     tableBean.setDay(day); | ||||||
|  |                     tableBean.setPos(pos); | ||||||
|  |                     Intent intent = new Intent(AddTableActivity.this, AddTableDialogActivity.class); | ||||||
|  |                     if (bean == null) {//新增 是相对课程表说的
 | ||||||
|  |                         intent.putExtra("title", "1"); | ||||||
|  |                     } else {//编辑
 | ||||||
|  |                         intent.putExtra("title", "2"); | ||||||
|  |                     } | ||||||
|  |                     if (TextUtils.isEmpty(tableBean.getTableNameMsg())) {//新增  相当于 item说的
 | ||||||
|  |                         intent.putExtra("item", "1"); | ||||||
|  |                     } else {//编辑
 | ||||||
|  |                         intent.putExtra("item", "2"); | ||||||
|  |                     } | ||||||
|  |                     tableBean.setTableIdMsg(tableIdMsg); | ||||||
|  |                     intent.putExtra("bean", tableBean); | ||||||
|  |                     startActivityForResult(intent, 202); | ||||||
|  |                 } | ||||||
|  |             }); | ||||||
|  |         } else { | ||||||
|  |             adapter.setList(mList1, mList2, mList3, mList4, mList5); | ||||||
|  |             adapter.notifyDataSetChanged(); | ||||||
|  |             handler.postDelayed(new Runnable() { | ||||||
|  |                 @Override | ||||||
|  |                 public void run() { | ||||||
|  |                     swip.setRefreshing(false); | ||||||
|  |                 } | ||||||
|  |             }, 1000); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         showBackDialog(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void showBackDialog() { | ||||||
|  |         if (bean != null) { | ||||||
|  |             finish(); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         saveData(1); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | ||||||
|  |         super.onActivityResult(requestCode, resultCode, data); | ||||||
|  |         if (requestCode == 202) { | ||||||
|  |             if (resultCode == 12) { | ||||||
|  |                 TableBean bean = (TableBean) data.getSerializableExtra("bean"); | ||||||
|  |                 int day = bean.getDay(); | ||||||
|  |                 int pos = bean.getPos(); | ||||||
|  |                 if (day == ConstansTableItemManager.item_1) { | ||||||
|  |                     mList1.set(pos, bean); | ||||||
|  |                 } | ||||||
|  |                 if (day == ConstansTableItemManager.item_2) { | ||||||
|  |                     mList2.set(pos, bean); | ||||||
|  |                 } | ||||||
|  |                 if (day == ConstansTableItemManager.item_3) { | ||||||
|  |                     mList3.set(pos, bean); | ||||||
|  |                 } | ||||||
|  |                 if (day == ConstansTableItemManager.item_4) { | ||||||
|  |                     mList4.set(pos, bean); | ||||||
|  |                 } | ||||||
|  |                 if (day == ConstansTableItemManager.item_5) { | ||||||
|  |                     mList5.set(pos, bean); | ||||||
|  |                 } | ||||||
|  |                 setAdapter(mList1, mList2, mList3, mList4, mList5); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,218 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.text.TextUtils; | ||||||
|  | import android.util.Log; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.ArrayAdapter; | ||||||
|  | import android.widget.EditText; | ||||||
|  | import android.widget.Spinner; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.TableBean; | ||||||
|  | import com.stu.assistant.bean.TableTimeBean; | ||||||
|  | import com.stu.assistant.bean.UserInfoBean; | ||||||
|  | import com.stu.assistant.constants.ConstansUserManager; | ||||||
|  | import com.stu.assistant.uitls.CalendarUtil; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import java.sql.Array; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.BmobQuery; | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.FindListener; | ||||||
|  | import cn.bmob.v3.listener.SaveListener; | ||||||
|  | import cn.bmob.v3.listener.UpdateListener; | ||||||
|  | 
 | ||||||
|  | //添加具体的节课的页面
 | ||||||
|  | public class AddTableDialogActivity extends BaseActivity { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private EditText tableNameEdit; | ||||||
|  |     private EditText addressEdit, markEdit; | ||||||
|  |     private Spinner spinner, spinnerDay, teacherNameSpinner; | ||||||
|  |     private TableBean bean; | ||||||
|  |     private ArrayList<UserInfoBean> teacherList; | ||||||
|  |     private TextView btn; | ||||||
|  |     private String item = "1"; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_add_table_dialog; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         Intent intent = getIntent(); | ||||||
|  |         String title = intent.getStringExtra("title"); | ||||||
|  |         item = intent.getStringExtra("item"); | ||||||
|  |         String titleMsg = ""; | ||||||
|  |         bean = (TableBean) intent.getSerializableExtra("bean"); | ||||||
|  |         if (title.equals("1")) { | ||||||
|  |             titleMsg = "新增课程"; | ||||||
|  |         } else { | ||||||
|  |             titleMsg = "编辑课程"; | ||||||
|  |         } | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, titleMsg); | ||||||
|  |         setTextMsg(R.id.OnPushClick, titleMsg); | ||||||
|  |         tableNameEdit = findViewById(R.id.edit_table_name); | ||||||
|  |         teacherNameSpinner = findViewById(R.id.edit_teacherName); | ||||||
|  |         addressEdit = findViewById(R.id.edit_address); | ||||||
|  |         markEdit = findViewById(R.id.edit_mark); | ||||||
|  |         spinner = findViewById(R.id.spinner_time); | ||||||
|  |         spinnerDay = findViewById(R.id.spinner_day); | ||||||
|  |         btn = findViewById(R.id.OnPushClick); | ||||||
|  |         spinner.setEnabled(false); | ||||||
|  |         spinnerDay.setEnabled(false); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         spinnerDay.setSelection(bean.getDay()); | ||||||
|  |         spinner.setSelection(bean.getPos() + 1); | ||||||
|  |         if (!TextUtils.isEmpty(bean.getAddress())) { | ||||||
|  |             addressEdit.setText(bean.getAddress()); | ||||||
|  |         } | ||||||
|  |         if (!TextUtils.isEmpty(bean.getTableNameMsg())) { | ||||||
|  |             tableNameEdit.setText(bean.getTableNameMsg()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (!TextUtils.isEmpty(bean.getMark())) { | ||||||
|  |             markEdit.setText(bean.getMark()); | ||||||
|  |         } | ||||||
|  |         showProDialog("正在查询老师信息"); | ||||||
|  |         BmobQuery<UserInfoBean> query = new BmobQuery<>(); | ||||||
|  |         query.addWhereEqualTo("userLevel", ConstansUserManager.Level_3); | ||||||
|  |         query.order("-createdAt") | ||||||
|  |                 .findObjects(new FindListener<UserInfoBean>() { | ||||||
|  |                     @Override | ||||||
|  |                     public void done(List<UserInfoBean> list, BmobException e) { | ||||||
|  |                         dismissProDialog(); | ||||||
|  |                         teacherList = (ArrayList<UserInfoBean>) list; | ||||||
|  |                         setSpinner(teacherList); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void setSpinner(ArrayList<UserInfoBean> list) { | ||||||
|  |         UserInfoBean userInfoBean = new UserInfoBean(); | ||||||
|  |         userInfoBean.setUsername("请选择老师"); | ||||||
|  |         list.add(0, userInfoBean); | ||||||
|  |         String[] mItems = new String[list.size()]; | ||||||
|  |         for (int i = 0; i < list.size(); i++) { | ||||||
|  |             mItems[i] = list.get(i).getUsername(); | ||||||
|  |         } | ||||||
|  |         ArrayAdapter<String> _Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mItems); | ||||||
|  |         teacherNameSpinner.setAdapter(_Adapter); | ||||||
|  |         //默认选择带过来的老师信息
 | ||||||
|  |         if (!TextUtils.isEmpty(bean.getTeacherId())) { | ||||||
|  |             for (int i = 0; i < list.size(); i++) { | ||||||
|  |                 String objectId = list.get(i).getObjectId(); | ||||||
|  |                 if (!TextUtils.isEmpty(objectId)) { | ||||||
|  |                     if (objectId.equals(bean.getTeacherId())) { | ||||||
|  |                         teacherNameSpinner.setSelection(i); | ||||||
|  |                         break; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         btn.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 String tableNameMsg = tableNameEdit.getText().toString(); | ||||||
|  |                 String addressMsg = addressEdit.getText().toString(); | ||||||
|  |                 String markMsg = markEdit.getText().toString(); | ||||||
|  |                 int teacherName = teacherNameSpinner.getSelectedItemPosition(); | ||||||
|  |                 int selectedItemPosition = spinner.getSelectedItemPosition(); | ||||||
|  |                 int selectedItemPosition1 = spinnerDay.getSelectedItemPosition(); | ||||||
|  |                 if (teacherList == null) { | ||||||
|  |                     MyToast.show("请重新加载老师信息"); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |                 if (TextUtils.isEmpty(tableNameMsg)) { | ||||||
|  |                     MyToast.show(tableNameEdit.getHint().toString()); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (TextUtils.isEmpty(addressMsg)) { | ||||||
|  |                     MyToast.show(addressEdit.getHint().toString()); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (teacherName == 0) { | ||||||
|  |                     MyToast.show("请选择老师"); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |                 if (selectedItemPosition == 0) { | ||||||
|  |                     MyToast.show("请选择周数"); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (selectedItemPosition1 == 0) { | ||||||
|  |                     MyToast.show("请选择节次"); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |                 bean.setTeacherId(teacherList.get(teacherName).getObjectId()); | ||||||
|  |                 bean.setTeacherName(teacherList.get(teacherName).getUsername()); | ||||||
|  |                 bean.setAddress(addressMsg); | ||||||
|  |                 bean.setTableNameMsg(tableNameMsg); | ||||||
|  |                 bean.setStuId(SharedUtil.create(BaseApplion.application).getString(SharedConfig.objectId)); | ||||||
|  |                 bean.setMark(markMsg); | ||||||
|  | //                Log.i("hx","--item-->"+item);
 | ||||||
|  | //                Log.i("hx","--bean-->"+new Gson().toJson(bean));
 | ||||||
|  |                 if (TextUtils.isEmpty(item) || item.equals("1")) {//直接返回一块更新
 | ||||||
|  |                     showProDialog("正在保存"); | ||||||
|  |                     bean.save(new SaveListener<String>() { | ||||||
|  |                         @Override | ||||||
|  |                         public void done(String s, BmobException e) { | ||||||
|  |                             dismissProDialog(); | ||||||
|  |                             if (e == null) { | ||||||
|  |                                 Intent intent = new Intent(); | ||||||
|  |                                 bean.setObjectId(s); | ||||||
|  |                                 intent.putExtra("bean", bean); | ||||||
|  |                                 setResult(12, intent); | ||||||
|  |                                 finish(); | ||||||
|  |                             } else { | ||||||
|  |                                 MyToast.show("保存失败" + e.getMessage()); | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     }); | ||||||
|  |                 } else {//单独更新
 | ||||||
|  |                     showProDialog("正在更新"); | ||||||
|  |                     bean.update(bean.getObjectId(), new UpdateListener() { | ||||||
|  |                         @Override | ||||||
|  |                         public void done(BmobException e) { | ||||||
|  |                             dismissProDialog(); | ||||||
|  |                             if (e == null) { | ||||||
|  |                                 Intent intent = new Intent(); | ||||||
|  |                                 intent.putExtra("bean", bean); | ||||||
|  |                                 setResult(12, intent); | ||||||
|  |                                 finish(); | ||||||
|  |                             } else { | ||||||
|  |                                 MyToast.show("失败" + e.getMessage()); | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     }); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         super.onBackPressed(); | ||||||
|  |         finish(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,158 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.text.TextUtils; | ||||||
|  | import android.util.Log; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.EditText; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.TaskBean; | ||||||
|  | import com.stu.assistant.dialog.DiaogUtil; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.SaveListener; | ||||||
|  | import cn.bmob.v3.listener.UpdateListener; | ||||||
|  | //添加作业页面
 | ||||||
|  | public class AddTaskActivity extends BaseActivity { | ||||||
|  |     private EditText taskNameEdit; | ||||||
|  |     private EditText msgEdit; | ||||||
|  |     private TaskBean bean; | ||||||
|  |     private TextView btn, timeTv; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_add_task_dialog; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         Intent intent = getIntent(); | ||||||
|  |         String title = intent.getStringExtra("title"); | ||||||
|  |         String titleMsg = ""; | ||||||
|  |         bean = (TaskBean) intent.getSerializableExtra("bean"); | ||||||
|  |         if (bean == null) { | ||||||
|  |             titleMsg = "新增作业"; | ||||||
|  |         } else { | ||||||
|  |             titleMsg = "编辑作业"; | ||||||
|  |         } | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, titleMsg); | ||||||
|  |         setTextMsg(R.id.OnPushClick, titleMsg); | ||||||
|  |         taskNameEdit = findViewById(R.id.edit_task_name); | ||||||
|  |         msgEdit = findViewById(R.id.edit_msg); | ||||||
|  |         timeTv = findViewById(R.id.tv_time); | ||||||
|  |         btn = findViewById(R.id.OnPushClick); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         if (bean != null) { | ||||||
|  |             if (!TextUtils.isEmpty(bean.getTaskMsg())) { | ||||||
|  |                 msgEdit.setText(bean.getTaskMsg()); | ||||||
|  |             } | ||||||
|  |             if (!TextUtils.isEmpty(bean.getTableNameMsg())) { | ||||||
|  |                 taskNameEdit.setText(bean.getTableNameMsg()); | ||||||
|  |             } | ||||||
|  |             if (!TextUtils.isEmpty(bean.getTime())) { | ||||||
|  |                 timeTv.setText(bean.getTime()); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         timeTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 DiaogUtil.showSelectTimeDialog(AddTaskActivity.this, new DiaogUtil.OnSelectLisenter() { | ||||||
|  |                     @Override | ||||||
|  |                     public void OnOkBtn(String time) { | ||||||
|  |                         timeTv.setText(time); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  |         btn.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 String tableNameMsg = taskNameEdit.getText().toString(); | ||||||
|  |                 String taskMsg = msgEdit.getText().toString(); | ||||||
|  |                 String timeMsg = timeTv.getText().toString(); | ||||||
|  |                 if (TextUtils.isEmpty(tableNameMsg)) { | ||||||
|  |                     MyToast.show(taskNameEdit.getHint().toString()); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (TextUtils.isEmpty(timeMsg)) { | ||||||
|  |                     MyToast.show(timeTv.getHint().toString()); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (TextUtils.isEmpty(taskMsg)) { | ||||||
|  |                     MyToast.show(msgEdit.getHint().toString()); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 if (bean == null) {//直接返回一块更新
 | ||||||
|  |                     TaskBean bean = new TaskBean(); | ||||||
|  |                     bean.setTaskMsg(taskMsg); | ||||||
|  |                     bean.setTime(timeMsg); | ||||||
|  |                     bean.setTableNameMsg(tableNameMsg); | ||||||
|  |                     bean.setStuId(SharedUtil.create(BaseApplion.application).getString(SharedConfig.objectId)); | ||||||
|  |                     Log.i("hx", "--bean-->" + new Gson().toJson(bean)); | ||||||
|  |                     showProDialog("正在保存"); | ||||||
|  |                     bean.save(new SaveListener<String>() { | ||||||
|  |                         @Override | ||||||
|  |                         public void done(String s, BmobException e) { | ||||||
|  |                             dismissProDialog(); | ||||||
|  |                             if (e == null) { | ||||||
|  |                                 Intent intent = new Intent(); | ||||||
|  |                                 bean.setObjectId(s); | ||||||
|  |                                 intent.putExtra("bean", bean); | ||||||
|  |                                 setResult(12, intent); | ||||||
|  |                                 finish(); | ||||||
|  |                             } else { | ||||||
|  |                                 MyToast.show("保存失败" + e.getMessage()); | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     }); | ||||||
|  |                 } else {//单独更新
 | ||||||
|  |                     showProDialog("正在更新"); | ||||||
|  |                     bean.setTaskMsg(taskMsg); | ||||||
|  |                     bean.setTime(timeMsg); | ||||||
|  |                     bean.setTableNameMsg(tableNameMsg); | ||||||
|  |                     bean.setStuId(SharedUtil.create(BaseApplion.application).getString(SharedConfig.objectId)); | ||||||
|  |                     Log.i("hx", "--bean-->" + new Gson().toJson(bean)); | ||||||
|  |                     bean.update(bean.getObjectId(), new UpdateListener() { | ||||||
|  |                         @Override | ||||||
|  |                         public void done(BmobException e) { | ||||||
|  |                             dismissProDialog(); | ||||||
|  |                             if (e == null) { | ||||||
|  |                                 Intent intent = new Intent(); | ||||||
|  |                                 intent.putExtra("bean", bean); | ||||||
|  |                                 setResult(12, intent); | ||||||
|  |                                 finish(); | ||||||
|  |                             } else { | ||||||
|  |                                 MyToast.show("失败" + e.getMessage()); | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     }); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         super.onBackPressed(); | ||||||
|  |         finish(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,111 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.EditText; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.UserInfoBean; | ||||||
|  | import com.stu.assistant.presenter.LoginPresenter; | ||||||
|  | import com.stu.assistant.uitls.AppTools; | ||||||
|  | import com.stu.assistant.uitls.ChenJingEditUil; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | import cn.bmob.v3.BmobUser; | ||||||
|  | //登录页面
 | ||||||
|  | public class LoginActivity extends BaseActivity { | ||||||
|  | 
 | ||||||
|  |     private EditText usertNameEdit; | ||||||
|  |     private EditText usertPasswordEdit; | ||||||
|  |     private LoginPresenter loginPresenter; | ||||||
|  |     private TextView loginBtn, versionNameTv; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_login; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         ChenJingEditUil.assistActivity(this); | ||||||
|  |         usertNameEdit = findViewById(R.id.tv_username); | ||||||
|  |         usertPasswordEdit = findViewById(R.id.tv_userpassword); | ||||||
|  |         loginBtn = findViewById(R.id.button_login); | ||||||
|  |         versionNameTv = findViewById(R.id.version_name); | ||||||
|  |         loginPresenter = new LoginPresenter(this); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         versionNameTv.setText(AppTools.getVersionName(this)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         boolean aBoolean = SharedUtil.create(BaseApplion.application).getBoolean(SharedConfig.isLogin, false); | ||||||
|  |         if (aBoolean) { | ||||||
|  |             if (BmobUser.isLogin()) { | ||||||
|  |                 UserInfoBean user = BmobUser.getCurrentUser(UserInfoBean.class); | ||||||
|  |                 loginPresenter.saveUser(user); | ||||||
|  |                 Intent intent = new Intent(LoginActivity.this, MainActivity.class); | ||||||
|  |                 startActivity(intent); | ||||||
|  |                 finish(); | ||||||
|  |             } else { | ||||||
|  |                 login(); | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             login(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void login() { | ||||||
|  |         loginBtn.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 loginPresenter.loginIn(usertNameEdit.getText().toString(), usertPasswordEdit.getText().toString(), new LoginPresenter.OnLoginResultListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void isSucLogin(UserInfoBean bean) { | ||||||
|  |                         Intent intent = new Intent(LoginActivity.this, MainActivity.class); | ||||||
|  |                         startActivity(intent); | ||||||
|  |                         finish(); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     @Override | ||||||
|  |                     public void errorMsg(String msg) { | ||||||
|  |                         MyToast.show(msg); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void OnRegister(View view) { | ||||||
|  |         Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); | ||||||
|  |         intent.putExtra("type", "1"); | ||||||
|  |         startActivityForResult(intent, 99); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         super.onBackPressed(); | ||||||
|  |         finish(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | ||||||
|  |         super.onActivityResult(requestCode, resultCode, data); | ||||||
|  |         if (requestCode == 99) { | ||||||
|  |             if (resultCode == 2) { | ||||||
|  |                 UserInfoBean userBean = (UserInfoBean) data.getSerializableExtra("userBean"); | ||||||
|  |                 usertNameEdit.setText(userBean.getUsername()); | ||||||
|  |                 usertPasswordEdit.setText(""); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,102 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.AdapterView; | ||||||
|  | import android.widget.GridView; | ||||||
|  | import android.widget.LinearLayout; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.adapter.HomeGvAdapter; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.MainModuleBean; | ||||||
|  | import com.stu.assistant.constants.ConstansItemManager; | ||||||
|  | import com.stu.assistant.presenter.MainPresenter; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | //主页面
 | ||||||
|  | public class MainActivity extends BaseActivity { | ||||||
|  | 
 | ||||||
|  |     private LinearLayout lay; | ||||||
|  |     private GridView gridView; | ||||||
|  |     private MainPresenter mainPresenter; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_main; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, "学习助手"); | ||||||
|  |         findViewById(R.id.back_lay).setVisibility(View.INVISIBLE); | ||||||
|  |         gridView = findViewById(R.id.main_gridview); | ||||||
|  |         lay = findViewById(R.id.lay); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         mainPresenter = new MainPresenter(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         HomeGvAdapter homeGvAdapter = new HomeGvAdapter(this, mainPresenter.getData()); | ||||||
|  |         gridView.setAdapter(homeGvAdapter); | ||||||
|  |         gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onItemClick(AdapterView<?> parent, View view, int i, long l) { | ||||||
|  |                 MainModuleBean moduleBean = ((MainModuleBean) parent.getAdapter().getItem(i)); | ||||||
|  |                 int itemFlag = moduleBean.getItemFlag(); | ||||||
|  |                 switch (itemFlag) { | ||||||
|  |                     case ConstansItemManager.item_1: | ||||||
|  |                         Intent intent1 = new Intent(mContext, TableListActivity.class); | ||||||
|  |                         intent1.putExtra("userLevel", SharedUtil.create(BaseApplion.application).getString(SharedConfig.userLevel)); | ||||||
|  |                         intent1.putExtra("title", "课表"); | ||||||
|  |                         intent1.putExtra("itemType", itemFlag); | ||||||
|  |                         startActivityForResult(intent1, 201);//查看课表
 | ||||||
|  |                         break; | ||||||
|  |                     case ConstansItemManager.item_2: | ||||||
|  |                         Intent intent = new Intent(mContext, TaskListActivity.class); | ||||||
|  |                         intent.putExtra("userLevel", SharedUtil.create(BaseApplion.application).getString(SharedConfig.userLevel)); | ||||||
|  |                         intent.putExtra("title", "作业"); | ||||||
|  |                         intent.putExtra("itemType", itemFlag); | ||||||
|  |                         startActivityForResult(intent, 202);//查看课表
 | ||||||
|  |                         break; | ||||||
|  |                     case ConstansItemManager.item_3: | ||||||
|  |                         Intent intent3 = new Intent(mContext, SettingActivity.class); | ||||||
|  |                         startActivity(intent3);//设置
 | ||||||
|  |                         finish(); | ||||||
|  |                         break; | ||||||
|  |                     default: | ||||||
|  |                         break; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     // 两次点击按钮之间的点击间隔不能少于1000毫秒
 | ||||||
|  |     private static final int MIN_CLICK_DELAY_TIME = 2000; | ||||||
|  |     private static long lastClickTime; | ||||||
|  | 
 | ||||||
|  |     public void outApp() { | ||||||
|  |         long curClickTime = System.currentTimeMillis(); | ||||||
|  |         if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) { | ||||||
|  |             MyToast.show("再按一次退出"); | ||||||
|  |             lastClickTime = curClickTime; | ||||||
|  |         } else { | ||||||
|  |             BaseApplion.getActivityManage().finishAll(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         outApp(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,75 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.text.TextUtils; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.EditText; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.bean.UserInfoBean; | ||||||
|  | import com.stu.assistant.constants.ConstansUserManager; | ||||||
|  | import com.stu.assistant.presenter.RegisterPresenter; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | 
 | ||||||
|  | //账号注册学生,老师信息 数据库中写死的
 | ||||||
|  | public class RegisterActivity extends BaseActivity { | ||||||
|  | 
 | ||||||
|  |     private EditText  userNameEdit, passwordEdit; | ||||||
|  |     private RegisterPresenter presenter; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_register; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, "注册"); | ||||||
|  |         setTextMsg(R.id.btn_register,"注册"); | ||||||
|  |         userNameEdit = findViewById(R.id.tv_username); | ||||||
|  |         passwordEdit = findViewById(R.id.tv_userpassword); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         presenter = new RegisterPresenter(this); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void btnRegisterOnClick(View view) { | ||||||
|  |         String userName = userNameEdit.getText().toString(); | ||||||
|  |         String password = passwordEdit.getText().toString(); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         if (TextUtils.isEmpty(userName)) { | ||||||
|  |             MyToast.show(userNameEdit.getHint().toString()); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (TextUtils.isEmpty(password)) { | ||||||
|  |             MyToast.show(passwordEdit.getHint().toString()); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         UserInfoBean userBean = new UserInfoBean(); | ||||||
|  |         userBean.setUsername(userName); | ||||||
|  |         userBean.setPassword(password); | ||||||
|  |         userBean.setUserLevel(ConstansUserManager.Level_4); | ||||||
|  |         userBean.setUserType(ConstansUserManager.UserType_2); | ||||||
|  |         presenter.registerUser(userBean, new RegisterPresenter.OnRegisterListener() { | ||||||
|  |             @Override | ||||||
|  |             public void registerListener(UserInfoBean userInfoBean) { | ||||||
|  |                 Intent intent = new Intent(); | ||||||
|  |                 intent.putExtra("userBean", userBean); | ||||||
|  |                 setResult(2, intent); | ||||||
|  |                 finish(); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,95 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.content.res.Resources; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.LinearLayout; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.dialog.DiaogUtil; | ||||||
|  | import com.stu.assistant.dialog.PopWindowUtils; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.BmobUser; | ||||||
|  | 
 | ||||||
|  | //设置页面
 | ||||||
|  | public class SettingActivity extends BaseActivity { | ||||||
|  | 
 | ||||||
|  |     private TextView accountTv, titleTv; | ||||||
|  |     private LinearLayout lay, backLay; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_setting; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         accountTv = findViewById(R.id.tv_account); | ||||||
|  |         titleTv = findViewById(R.id.title_tv); | ||||||
|  |         titleTv.setText("设置"); | ||||||
|  |         backLay = findViewById(R.id.back_lay); | ||||||
|  |         lay = findViewById(R.id.lay); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         accountTv.setText("登录账号:" + SharedUtil.create(SettingActivity.this).getString(SharedConfig.loginName)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         backLay.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 Intent intent = new Intent(SettingActivity.this, MainActivity.class); | ||||||
|  |                 startActivity(intent); | ||||||
|  |                 finish(); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void BtnOutOnClick(View view) { | ||||||
|  |         BaseApplion.getActivityManage().finishAll(); | ||||||
|  |         SharedUtil.create(BaseApplion.application).clear(); | ||||||
|  |         BmobUser.logOut(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         Intent intent = new Intent(SettingActivity.this, MainActivity.class); | ||||||
|  |         startActivity(intent); | ||||||
|  |         finish(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void OnColorClick(View view) { | ||||||
|  |         DiaogUtil.showSelectColorDialog(SettingActivity.this, lay, "", new DiaogUtil.OnNickNameLisenter() { | ||||||
|  |             @Override | ||||||
|  |             public void OnOkBtn(String msg, PopWindowUtils popWindow) { | ||||||
|  | 
 | ||||||
|  |                 //自己跳转自己 ,关掉动画 无感处理
 | ||||||
|  |                 Intent mIntent = getIntent(); | ||||||
|  |                 finish(); | ||||||
|  |                 //关掉栈中其他的activity ,但主页的不能关掉
 | ||||||
|  |                 BaseApplion.getActivityManage().finishAct(); | ||||||
|  |                 overridePendingTransition(0, 0); | ||||||
|  |                 startActivity(mIntent); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void OnBgClick(View view) { | ||||||
|  |         DiaogUtil.showSelectBgDialog(SettingActivity.this, lay, new DiaogUtil.OnNickNameLisenter() { | ||||||
|  |             @Override | ||||||
|  |             public void OnOkBtn(String msg, PopWindowUtils popWindow) { | ||||||
|  |                 Intent intent = new Intent(SettingActivity.this, MainActivity.class); | ||||||
|  |                 startActivity(intent); | ||||||
|  |                 finish(); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,144 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | import androidx.recyclerview.widget.LinearLayoutManager; | ||||||
|  | import androidx.recyclerview.widget.RecyclerView; | ||||||
|  | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; | ||||||
|  | import cn.bmob.v3.BmobQuery; | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.FindListener; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.os.Handler; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.Toast; | ||||||
|  | 
 | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.adapter.TableAllListAdapter; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.AllTableListBean; | ||||||
|  | import com.stu.assistant.uitls.DividerItemDecorationUtil; | ||||||
|  | import com.stu.assistant.uitls.LogUtils; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | import com.stu.assistant.view.MySwipeRefreshLayout; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | //课程列表
 | ||||||
|  | public class TableListActivity extends BaseActivity { | ||||||
|  |     private RecyclerView mrv; | ||||||
|  |     private TableAllListAdapter adapter; | ||||||
|  |     private MySwipeRefreshLayout swip; | ||||||
|  |     private Handler handler; | ||||||
|  |     private String userLevel, title; | ||||||
|  |     private int itemType; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_table_list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         swip = findViewById(R.id.swip_rf); | ||||||
|  |         mrv = findViewById(R.id.mrv); | ||||||
|  |         handler = new Handler(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         LinearLayoutManager manager = new LinearLayoutManager(this); | ||||||
|  |         manager.setOrientation(LinearLayoutManager.VERTICAL); | ||||||
|  |         mrv.addItemDecoration(new DividerItemDecorationUtil(this, false)); | ||||||
|  |         mrv.setLayoutManager(manager); | ||||||
|  |         Intent intent = getIntent(); | ||||||
|  |         userLevel = intent.getStringExtra("userLevel"); | ||||||
|  |         title = intent.getStringExtra("title"); | ||||||
|  |         itemType = intent.getIntExtra("itemType", 0); | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, title); | ||||||
|  |         setTextMsg(R.id.btn_register, "添加" + title); | ||||||
|  |         getData(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         // 刷新数据
 | ||||||
|  |         swip.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onRefresh() { | ||||||
|  |                 // 这里的作用是防止下拉刷新的时候还可以上拉加载
 | ||||||
|  |                 getData(); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void getData() { | ||||||
|  |         showProDialog("正在查询"); | ||||||
|  |         BmobQuery<AllTableListBean> query = new BmobQuery<>(); | ||||||
|  |         query.addWhereEqualTo("stuId", SharedUtil.create(BaseApplion.application).getString(SharedConfig.objectId)); | ||||||
|  |         query.findObjects(new FindListener<AllTableListBean>() { | ||||||
|  |                     @Override | ||||||
|  |                     public void done(List<AllTableListBean> list, BmobException e) { | ||||||
|  |                         LogUtils.i("list", "-stuId-findObjects-->" + new Gson().toJson(list)); | ||||||
|  |                         dismissProDialog(); | ||||||
|  |                         setAdapter((ArrayList<AllTableListBean>) list); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setAdapter(ArrayList<AllTableListBean> mList) { | ||||||
|  |         if (mList == null) { | ||||||
|  |             mList = new ArrayList<>(); | ||||||
|  |         } | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, title + "(" + mList.size() + ")"); | ||||||
|  |         if (adapter == null) { | ||||||
|  |             adapter = new TableAllListAdapter(this, mList); | ||||||
|  |             mrv.setAdapter(adapter); | ||||||
|  |             adapter.setOnItemClickListeners(new TableAllListAdapter.OnItemClickListeners() { | ||||||
|  |                 @Override | ||||||
|  |                 public void itemBean(int pos, AllTableListBean tableListBean) { | ||||||
|  |                     Intent intent = new Intent(TableListActivity.this, AddTableActivity.class); | ||||||
|  |                     intent.putExtra("bean",tableListBean); | ||||||
|  |                     startActivityForResult(intent, 201); | ||||||
|  |                 } | ||||||
|  |             }); | ||||||
|  |         } else { | ||||||
|  |             adapter.setList(mList); | ||||||
|  |             adapter.notifyDataSetChanged(); | ||||||
|  | 
 | ||||||
|  |             handler.postDelayed(new Runnable() { | ||||||
|  |                 @Override | ||||||
|  |                 public void run() { | ||||||
|  |                     swip.setRefreshing(false); | ||||||
|  |                 } | ||||||
|  |             }, 1000); | ||||||
|  |             if (mList.size() == 0) { | ||||||
|  |                 Toast.makeText(this, "暂无数据", Toast.LENGTH_SHORT).show(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         super.onBackPressed(); | ||||||
|  |         finish(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void BtnAddOnClick(View view) { | ||||||
|  |         Intent intent = new Intent(TableListActivity.this, AddTableActivity.class); | ||||||
|  |         startActivityForResult(intent, 201); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | ||||||
|  |         super.onActivityResult(requestCode, resultCode, data); | ||||||
|  |         if (requestCode == 201) { | ||||||
|  |             if (resultCode == 12) { | ||||||
|  |                 getData(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,144 @@ | |||||||
|  | package com.stu.assistant.activity; | ||||||
|  | 
 | ||||||
|  | import android.content.Intent; | ||||||
|  | import android.os.Handler; | ||||||
|  | import android.view.View; | ||||||
|  | import android.widget.Toast; | ||||||
|  | 
 | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.adapter.TaskAllListAdapter; | ||||||
|  | import com.stu.assistant.base.BaseActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.TaskBean; | ||||||
|  | import com.stu.assistant.uitls.DividerItemDecorationUtil; | ||||||
|  | import com.stu.assistant.uitls.LogUtils; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | import com.stu.assistant.view.MySwipeRefreshLayout; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | import androidx.recyclerview.widget.LinearLayoutManager; | ||||||
|  | import androidx.recyclerview.widget.RecyclerView; | ||||||
|  | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; | ||||||
|  | import cn.bmob.v3.BmobQuery; | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.FindListener; | ||||||
|  | //作业列表
 | ||||||
|  | public class TaskListActivity extends BaseActivity { | ||||||
|  |     private RecyclerView mrv; | ||||||
|  |     private TaskAllListAdapter adapter; | ||||||
|  |     private MySwipeRefreshLayout swip; | ||||||
|  |     private Handler handler; | ||||||
|  |     private String userLevel, title; | ||||||
|  |     private int itemType; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected int getLayoutId() { | ||||||
|  |         return R.layout.activity_table_list; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initView() { | ||||||
|  |         swip = findViewById(R.id.swip_rf); | ||||||
|  |         mrv = findViewById(R.id.mrv); | ||||||
|  |         handler = new Handler(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initData() { | ||||||
|  |         LinearLayoutManager manager = new LinearLayoutManager(this); | ||||||
|  |         manager.setOrientation(LinearLayoutManager.VERTICAL); | ||||||
|  |         mrv.addItemDecoration(new DividerItemDecorationUtil(this, false)); | ||||||
|  |         mrv.setLayoutManager(manager); | ||||||
|  |         Intent intent = getIntent(); | ||||||
|  |         userLevel = intent.getStringExtra("userLevel"); | ||||||
|  |         title = intent.getStringExtra("title"); | ||||||
|  |         itemType = intent.getIntExtra("itemType", 0); | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, title); | ||||||
|  |         setTextMsg(R.id.btn_register, "添加" + title); | ||||||
|  |         getData(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void initListener() { | ||||||
|  |         // 刷新数据
 | ||||||
|  |         swip.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onRefresh() { | ||||||
|  |                 // 这里的作用是防止下拉刷新的时候还可以上拉加载
 | ||||||
|  |                 getData(); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void getData() { | ||||||
|  |         showProDialog("正在查询"); | ||||||
|  |         BmobQuery<TaskBean> query = new BmobQuery<>(); | ||||||
|  |         query.addWhereEqualTo("stuId", SharedUtil.create(BaseApplion.application).getString(SharedConfig.objectId)); | ||||||
|  |         query.findObjects(new FindListener<TaskBean>() { | ||||||
|  |                     @Override | ||||||
|  |                     public void done(List<TaskBean> list, BmobException e) { | ||||||
|  |                         LogUtils.i("list", "-stuId-findObjects-->" + new Gson().toJson(list)); | ||||||
|  |                         dismissProDialog(); | ||||||
|  |                         setAdapter((ArrayList<TaskBean>) list); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setAdapter(ArrayList<TaskBean> mList) { | ||||||
|  |         if (mList == null) { | ||||||
|  |             mList = new ArrayList<>(); | ||||||
|  |         } | ||||||
|  |         setTitleLay(R.id.title_tv, R.id.back_lay, title + "(" + mList.size() + ")"); | ||||||
|  |         if (adapter == null) { | ||||||
|  |             adapter = new TaskAllListAdapter(this, mList); | ||||||
|  |             mrv.setAdapter(adapter); | ||||||
|  |             adapter.setOnItemClickListeners(new TaskAllListAdapter.OnItemClickListeners() { | ||||||
|  |                 @Override | ||||||
|  |                 public void itemBean(int pos, TaskBean tableListBean) { | ||||||
|  |                     Intent intent = new Intent(TaskListActivity.this, AddTaskActivity.class); | ||||||
|  |                     intent.putExtra("bean",tableListBean); | ||||||
|  |                     startActivityForResult(intent, 201); | ||||||
|  |                 } | ||||||
|  |             }); | ||||||
|  |         } else { | ||||||
|  |             adapter.setList(mList); | ||||||
|  |             adapter.notifyDataSetChanged(); | ||||||
|  | 
 | ||||||
|  |             handler.postDelayed(new Runnable() { | ||||||
|  |                 @Override | ||||||
|  |                 public void run() { | ||||||
|  |                     swip.setRefreshing(false); | ||||||
|  |                 } | ||||||
|  |             }, 1000); | ||||||
|  |             if (mList.size() == 0) { | ||||||
|  |                 Toast.makeText(this, "暂无数据", Toast.LENGTH_SHORT).show(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBackPressed() { | ||||||
|  |         super.onBackPressed(); | ||||||
|  |         finish(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void BtnAddOnClick(View view) { | ||||||
|  |         Intent intent = new Intent(TaskListActivity.this, AddTaskActivity.class); | ||||||
|  |         startActivityForResult(intent, 201); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | ||||||
|  |         super.onActivityResult(requestCode, resultCode, data); | ||||||
|  |         if (requestCode == 201) { | ||||||
|  |             if (resultCode == 12) { | ||||||
|  |                 getData(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,67 @@ | |||||||
|  | package com.stu.assistant.adapter; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.view.LayoutInflater; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | import android.widget.BaseAdapter; | ||||||
|  | import android.widget.ImageView; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.MainModuleBean; | ||||||
|  | import com.stu.assistant.uitls.ImageUtil; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | 
 | ||||||
|  | public class HomeGvAdapter extends BaseAdapter { | ||||||
|  | 
 | ||||||
|  |     private Context mContext; | ||||||
|  |     private ViewHolder holder; | ||||||
|  |     private ArrayList<MainModuleBean> list; | ||||||
|  | 
 | ||||||
|  |     public HomeGvAdapter(Context context, ArrayList<MainModuleBean> moduleBeansList) { | ||||||
|  |         mContext = context; | ||||||
|  |         this.list = moduleBeansList; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int getCount() { | ||||||
|  |         return list == null ? 0 : list.size(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public Object getItem(int position) { | ||||||
|  |         return list.get(position); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public long getItemId(int position) { | ||||||
|  |         return position; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public View getView(int position, View convertView, ViewGroup parent) { | ||||||
|  |         if (convertView == null) { | ||||||
|  |             convertView = LayoutInflater.from(mContext).inflate(R.layout.item_gridview, parent, false); | ||||||
|  |             holder = new ViewHolder(convertView); | ||||||
|  |             convertView.setTag(holder); | ||||||
|  |         } else { | ||||||
|  |             holder = (ViewHolder) convertView.getTag(); | ||||||
|  |         } | ||||||
|  |         ImageUtil.showImageView(BaseApplion.application,list.get(position).getImageView(), holder.mImageView); | ||||||
|  |         holder.mTextView.setText(list.get(position).getName()); | ||||||
|  |         return convertView; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     class ViewHolder { | ||||||
|  |         private ImageView mImageView; | ||||||
|  |         private TextView mTextView; | ||||||
|  | 
 | ||||||
|  |         public ViewHolder(View convertView) { | ||||||
|  |             mImageView = (ImageView) convertView.findViewById(R.id.img_into); | ||||||
|  |             mTextView = (TextView) convertView.findViewById(R.id.tv); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,93 @@ | |||||||
|  | package com.stu.assistant.adapter; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.view.LayoutInflater; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.bean.AllTableListBean; | ||||||
|  | import com.stu.assistant.constants.ConstansTableItemManager; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import androidx.recyclerview.widget.RecyclerView; | ||||||
|  | 
 | ||||||
|  | public class TableAllListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | ||||||
|  |     ArrayList<AllTableListBean> list1 = new ArrayList<>(); | ||||||
|  |     Context mContext; | ||||||
|  |     private String userLevel; | ||||||
|  |     private int itemType; | ||||||
|  | 
 | ||||||
|  |     public TableAllListAdapter(Context mContext, ArrayList<AllTableListBean> list1) { | ||||||
|  |         this.mContext = mContext; | ||||||
|  |         this.list1 = list1; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public void setList(ArrayList<AllTableListBean> list1) { | ||||||
|  |         this.list1 = list1; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @NonNull | ||||||
|  |     @Override | ||||||
|  |     public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { | ||||||
|  |         ItemViewHodler sectionViewHodler = null; | ||||||
|  |         sectionViewHodler = new ItemViewHodler(LayoutInflater.from(mContext).inflate(R.layout.table_all_list_item_layout, parent, false), viewType); | ||||||
|  |         return sectionViewHodler; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { | ||||||
|  |         ItemViewHodler itemViewHodler = (ItemViewHodler) holder; | ||||||
|  |         itemViewHodler.nameTv.setText("课程表" + (position + 1) + "\n创建时间:" + list1.get(position).getCreatedAt()); | ||||||
|  |         setOnItem(itemViewHodler.nameTv, position, list1.get(position)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void setOnItem(TextView time1Tv, int position, AllTableListBean AllTableListBean) { | ||||||
|  |         time1Tv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 listeners.itemBean(position, AllTableListBean); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | //        if (position % 2 == 0) {
 | ||||||
|  | //            time1Tv.setBackgroundResource(R.color.mistyrose);
 | ||||||
|  | //        } else {
 | ||||||
|  | //            time1Tv.setBackgroundResource(R.color.light_blue_50);
 | ||||||
|  | //        }
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int getItemCount() { | ||||||
|  |         return list1.size(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public class ItemViewHodler extends RecyclerView.ViewHolder { | ||||||
|  | 
 | ||||||
|  |         public TextView nameTv; | ||||||
|  |         public int viewType; | ||||||
|  | 
 | ||||||
|  |         public ItemViewHodler(@NonNull View itemView, int viewType) { | ||||||
|  |             super(itemView); | ||||||
|  |             this.viewType = viewType; | ||||||
|  |             nameTv = itemView.findViewById(R.id.name_tv); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public int getViewType() { | ||||||
|  |             return viewType; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnItemClickListeners { | ||||||
|  |         void itemBean(int pos, AllTableListBean AllTableListBean); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public OnItemClickListeners listeners; | ||||||
|  | 
 | ||||||
|  |     public void setOnItemClickListeners(OnItemClickListeners listener) { | ||||||
|  |         this.listeners = listener; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,127 @@ | |||||||
|  | package com.stu.assistant.adapter; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.view.LayoutInflater; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | import android.widget.ImageView; | ||||||
|  | import android.widget.LinearLayout; | ||||||
|  | import android.widget.RadioGroup; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.bean.TableBean; | ||||||
|  | import com.stu.assistant.constants.ConstansTableItemManager; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import androidx.recyclerview.widget.RecyclerView; | ||||||
|  | 
 | ||||||
|  | public class TableListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | ||||||
|  |     ArrayList<TableBean> list1 = new ArrayList<>(); | ||||||
|  |     ArrayList<TableBean> list2 = new ArrayList<>(); | ||||||
|  |     ArrayList<TableBean> list3 = new ArrayList<>(); | ||||||
|  |     ArrayList<TableBean> list4 = new ArrayList<>(); | ||||||
|  |     ArrayList<TableBean> list5 = new ArrayList<>(); | ||||||
|  |     Context mContext; | ||||||
|  |     private String userLevel; | ||||||
|  |     private int itemType; | ||||||
|  | 
 | ||||||
|  |     public TableListAdapter(Context mContext) { | ||||||
|  |         this.mContext = mContext; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public void setList(ArrayList<TableBean> list1, ArrayList<TableBean> list2, ArrayList<TableBean> list3, ArrayList<TableBean> list4, ArrayList<TableBean> list5) { | ||||||
|  |         this.list1 = list1; | ||||||
|  |         this.list2 = list2; | ||||||
|  |         this.list3 = list3; | ||||||
|  |         this.list4 = list4; | ||||||
|  |         this.list5 = list5; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @NonNull | ||||||
|  |     @Override | ||||||
|  |     public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { | ||||||
|  |         ItemViewHodler sectionViewHodler = null; | ||||||
|  |         sectionViewHodler = new ItemViewHodler(LayoutInflater.from(mContext).inflate(R.layout.table_item_layout, parent, false), viewType); | ||||||
|  |         return sectionViewHodler; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { | ||||||
|  |         ItemViewHodler itemViewHodler = (ItemViewHodler) holder; | ||||||
|  |         itemViewHodler.time1Tv.setText(list1.get(position).getTableNameMsg() + "[" +list1.get(position).getTeacherName()+","+ list1.get(position).getAddress()+"]"); | ||||||
|  |         itemViewHodler.time2Tv.setText(list2.get(position).getTableNameMsg() + "[" + list2.get(position).getTeacherName()+","+list2.get(position).getAddress()+"]"); | ||||||
|  |         itemViewHodler.time3Tv.setText(list3.get(position).getTableNameMsg() + "[" + list3.get(position).getTeacherName()+","+list3.get(position).getAddress()+"]"); | ||||||
|  |         itemViewHodler.time4Tv.setText(list4.get(position).getTableNameMsg() + "[" + list4.get(position).getTeacherName()+","+list4.get(position).getAddress()+"]"); | ||||||
|  |         itemViewHodler.time5Tv.setText(list5.get(position).getTableNameMsg() + "[" + list5.get(position).getTeacherName()+","+list5.get(position).getAddress()+"]"); | ||||||
|  |         itemViewHodler.timeTv.setText("" + (position + 1)); | ||||||
|  | 
 | ||||||
|  |         itemViewHodler.time1Tv.setText(itemViewHodler.time1Tv.getText().toString().replace("[,]","")); | ||||||
|  |         itemViewHodler.time2Tv.setText(itemViewHodler.time2Tv.getText().toString().replace("[,]","")); | ||||||
|  |         itemViewHodler.time3Tv.setText(itemViewHodler.time3Tv.getText().toString().replace("[,]","")); | ||||||
|  |         itemViewHodler.time4Tv.setText(itemViewHodler.time4Tv.getText().toString().replace("[,]","")); | ||||||
|  |         itemViewHodler.time5Tv.setText(itemViewHodler.time5Tv.getText().toString().replace("[,]","")); | ||||||
|  |         setOnItem(itemViewHodler.time1Tv, position,list1.get(position), ConstansTableItemManager.item_1); | ||||||
|  |         setOnItem(itemViewHodler.time2Tv, position,list2.get(position), ConstansTableItemManager.item_2); | ||||||
|  |         setOnItem(itemViewHodler.time3Tv, position,list3.get(position), ConstansTableItemManager.item_3); | ||||||
|  |         setOnItem(itemViewHodler.time4Tv, position,list4.get(position), ConstansTableItemManager.item_4); | ||||||
|  |         setOnItem(itemViewHodler.time5Tv, position, list5.get(position),ConstansTableItemManager.item_5); | ||||||
|  |         setOnItem(itemViewHodler.timeTv, position,list1.get(position), ConstansTableItemManager.item_99); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void setOnItem(TextView time1Tv, int position,TableBean tableBean, int item_1) { | ||||||
|  |         time1Tv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 if(item_1 != ConstansTableItemManager.item_99){ | ||||||
|  |                     listeners.itemBean(position,tableBean, item_1); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | //        if (position % 2 == 0) {
 | ||||||
|  | //            time1Tv.setBackgroundResource(R.color.mistyrose);
 | ||||||
|  | //        } else {
 | ||||||
|  | //            time1Tv.setBackgroundResource(R.color.light_blue_50);
 | ||||||
|  | //        }
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int getItemCount() { | ||||||
|  |         return list1.size(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public class ItemViewHodler extends RecyclerView.ViewHolder { | ||||||
|  | 
 | ||||||
|  |         public TextView time1Tv, time2Tv, time3Tv, time4Tv, time5Tv, timeTv; | ||||||
|  |         public int viewType; | ||||||
|  | 
 | ||||||
|  |         public ItemViewHodler(@NonNull View itemView, int viewType) { | ||||||
|  |             super(itemView); | ||||||
|  |             this.viewType = viewType; | ||||||
|  |             time1Tv = itemView.findViewById(R.id.tv_time1); | ||||||
|  |             time2Tv = itemView.findViewById(R.id.tv_time2); | ||||||
|  |             time3Tv = itemView.findViewById(R.id.tv_time3); | ||||||
|  |             time4Tv = itemView.findViewById(R.id.tv_time4); | ||||||
|  |             time5Tv = itemView.findViewById(R.id.tv_time5); | ||||||
|  |             timeTv = itemView.findViewById(R.id.tv_time); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public int getViewType() { | ||||||
|  |             return viewType; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnItemClickListeners { | ||||||
|  |         void itemBean(int pos,TableBean tableBean, int day); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public OnItemClickListeners listeners; | ||||||
|  | 
 | ||||||
|  |     public void setOnItemClickListeners(OnItemClickListeners listener) { | ||||||
|  |         this.listeners = listener; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,87 @@ | |||||||
|  | package com.stu.assistant.adapter; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.view.LayoutInflater; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.bean.TaskBean; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import androidx.recyclerview.widget.RecyclerView; | ||||||
|  | 
 | ||||||
|  | public class TaskAllListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | ||||||
|  |     ArrayList<TaskBean> list1 = new ArrayList<>(); | ||||||
|  |     Context mContext; | ||||||
|  |     private String userLevel; | ||||||
|  |     private int itemType; | ||||||
|  | 
 | ||||||
|  |     public TaskAllListAdapter(Context mContext, ArrayList<TaskBean> list1) { | ||||||
|  |         this.mContext = mContext; | ||||||
|  |         this.list1 = list1; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public void setList(ArrayList<TaskBean> list1) { | ||||||
|  |         this.list1 = list1; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @NonNull | ||||||
|  |     @Override | ||||||
|  |     public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { | ||||||
|  |         ItemViewHodler sectionViewHodler = null; | ||||||
|  |         sectionViewHodler = new ItemViewHodler(LayoutInflater.from(mContext).inflate(R.layout.table_all_list_item_layout, parent, false), viewType); | ||||||
|  |         return sectionViewHodler; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) { | ||||||
|  |         ItemViewHodler itemViewHodler = (ItemViewHodler) holder; | ||||||
|  |         itemViewHodler.nameTv.setText("课程名称:" + list1.get(position).getTableNameMsg() + "\n截止时间:" + list1.get(position).getTime()); | ||||||
|  |         setOnItem(itemViewHodler.nameTv, position, list1.get(position)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void setOnItem(TextView time1Tv, int position, TaskBean TaskBean) { | ||||||
|  |         time1Tv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 listeners.itemBean(position, TaskBean); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public int getItemCount() { | ||||||
|  |         return list1.size(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public class ItemViewHodler extends RecyclerView.ViewHolder { | ||||||
|  | 
 | ||||||
|  |         public TextView nameTv; | ||||||
|  |         public int viewType; | ||||||
|  | 
 | ||||||
|  |         public ItemViewHodler(@NonNull View itemView, int viewType) { | ||||||
|  |             super(itemView); | ||||||
|  |             this.viewType = viewType; | ||||||
|  |             nameTv = itemView.findViewById(R.id.name_tv); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public int getViewType() { | ||||||
|  |             return viewType; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnItemClickListeners { | ||||||
|  |         void itemBean(int pos, TaskBean TaskBean); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public OnItemClickListeners listeners; | ||||||
|  | 
 | ||||||
|  |     public void setOnItemClickListeners(OnItemClickListeners listener) { | ||||||
|  |         this.listeners = listener; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,82 @@ | |||||||
|  | package com.stu.assistant.base; | ||||||
|  | 
 | ||||||
|  | import android.app.Activity; | ||||||
|  | import android.util.Log; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.Stack; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @ClassName ActivityManage | ||||||
|  |  * @Description Activity管理 | ||||||
|  |  * @Author kaiguo | ||||||
|  |  * @Date 2020/3/17 11:10 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | public class ActivityManage { | ||||||
|  | 
 | ||||||
|  |     //保存所有创建的Activity
 | ||||||
|  |     // private ArrayList<Activity> allActivities = new ArrayList<>();
 | ||||||
|  |     private Stack<Activity> allActivities = new Stack<>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 添加Activity到管理器 | ||||||
|  |      * | ||||||
|  |      * @param activity activity | ||||||
|  |      */ | ||||||
|  |     public void addActivity(Activity activity) { | ||||||
|  |         if (activity != null) { | ||||||
|  |             allActivities.add(activity); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 从管理器移除Activity | ||||||
|  |      * | ||||||
|  |      * @param activity activity | ||||||
|  |      */ | ||||||
|  |     public void removeActivity(Activity activity) { | ||||||
|  |         if (activity != null) { | ||||||
|  |             allActivities.remove(activity); | ||||||
|  |             activity.finish(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 关闭所有Activity | ||||||
|  |      */ | ||||||
|  |     public void finishAll() { | ||||||
|  |         for (Activity activity : allActivities) { | ||||||
|  |             activity.finish(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void finishAct() { | ||||||
|  |         for (Activity activity : allActivities) { | ||||||
|  |             Log.i("hx","--activity.getLocalClassName()-->"+activity.getLocalClassName()); | ||||||
|  |             if (!"activity.SettingActivity".equals(activity.getLocalClassName())) { | ||||||
|  |                 activity.finish(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 关闭所有Activity | ||||||
|  |      */ | ||||||
|  |     public Activity getCurrentActivity() { | ||||||
|  |         return allActivities.lastElement(); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public ArrayList<Activity> getAllActivities() { | ||||||
|  |         ArrayList<Activity> list = new ArrayList<>(); | ||||||
|  |         if (allActivities.size() > 0) { | ||||||
|  |             for (Activity a : allActivities) { | ||||||
|  |                 list.add(a); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return list; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,41 @@ | |||||||
|  | package com.stu.assistant.base; | ||||||
|  | 
 | ||||||
|  | import android.app.Application; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.BuildConfig; | ||||||
|  | import com.stu.assistant.net.OkGoConfig; | ||||||
|  | import com.stu.assistant.uitls.CrashHandler; | ||||||
|  | import com.stu.assistant.uitls.CrashHandlerManage; | ||||||
|  | import com.stu.assistant.uitls.ShowClassNameCallBack; | ||||||
|  | import com.tencent.bugly.crashreport.CrashReport; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.Bmob; | ||||||
|  | 
 | ||||||
|  | public class BaseApplion extends Application { | ||||||
|  |     public static BaseApplion application; | ||||||
|  |     public static ActivityManage activityManage; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onCreate() { | ||||||
|  |         super.onCreate(); | ||||||
|  |         application = this; | ||||||
|  | 
 | ||||||
|  |         OkGoConfig.initOkGo(this); | ||||||
|  |         if (BuildConfig.DEBUG) { | ||||||
|  |             registerActivityLifecycleCallbacks(new ShowClassNameCallBack()); | ||||||
|  |             CrashHandlerManage.getInstance() | ||||||
|  |                     .init(getApplicationContext()); | ||||||
|  |             CrashHandler.getInstance().setDelayTime(1000 * 60 * 1).init(getApplicationContext()); | ||||||
|  |         } | ||||||
|  |         CrashReport.initCrashReport(getApplicationContext(), "6e238eccba", false); | ||||||
|  | 
 | ||||||
|  |         Bmob.initialize(this, "76a343b680dc028081fb0dd8b028a08d"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static ActivityManage getActivityManage() { | ||||||
|  |         if (activityManage == null) { | ||||||
|  |             activityManage = new ActivityManage(); | ||||||
|  |         } | ||||||
|  |         return activityManage; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,8 @@ | |||||||
|  | package com.stu.assistant.base; | ||||||
|  | 
 | ||||||
|  | import java.io.Serializable; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.BmobObject; | ||||||
|  | 
 | ||||||
|  | public class BaseBean extends BmobObject implements Serializable { | ||||||
|  | } | ||||||
| @ -0,0 +1,15 @@ | |||||||
|  | package com.stu.assistant.base; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.uitls.Config; | ||||||
|  | 
 | ||||||
|  | public abstract class BasePresenter { | ||||||
|  |     private Config config; | ||||||
|  | 
 | ||||||
|  |     public Config getConfig() { | ||||||
|  |         if (config == null) { | ||||||
|  |             config = new Config(); | ||||||
|  |         } | ||||||
|  |         return config; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,27 @@ | |||||||
|  | package com.stu.assistant.bean; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.base.BaseBean; | ||||||
|  | 
 | ||||||
|  | public class AllTableListBean extends BaseBean { | ||||||
|  |     private String tableIdMsg;//整个课程表的唯一id
 | ||||||
|  |     private String stuId; | ||||||
|  | 
 | ||||||
|  |     public AllTableListBean() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getStuId() { | ||||||
|  |         return stuId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setStuId(String stuId) { | ||||||
|  |         this.stuId = stuId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTableIdMsg() { | ||||||
|  |         return tableIdMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTableIdMsg(String tableIdMsg) { | ||||||
|  |         this.tableIdMsg = tableIdMsg; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,51 @@ | |||||||
|  | package com.stu.assistant.bean; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Created by stf on 2018-07-25. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | public class MainModuleBean { | ||||||
|  |     private String name; | ||||||
|  |     private int imageView; | ||||||
|  |     private int itemFlag; | ||||||
|  |     private String other; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public MainModuleBean(String name, int itemFlag, int imageView) { | ||||||
|  |         this.name = name; | ||||||
|  |         this.imageView = imageView; | ||||||
|  |         this.itemFlag = itemFlag; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getName() { | ||||||
|  |         return name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setName(String name) { | ||||||
|  |         this.name = name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public int getImageView() { | ||||||
|  |         return imageView; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setImageView(int imageView) { | ||||||
|  |         this.imageView = imageView; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public int getItemFlag() { | ||||||
|  |         return itemFlag; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setItemFlag(int itemFlag) { | ||||||
|  |         this.itemFlag = itemFlag; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getOther() { | ||||||
|  |         return other; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setOther(String other) { | ||||||
|  |         this.other = other; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,92 @@ | |||||||
|  | package com.stu.assistant.bean; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.base.BaseBean; | ||||||
|  | 
 | ||||||
|  | public class TableBean extends BaseBean { | ||||||
|  |     private String tableNameMsg; | ||||||
|  |     private String teacherName; | ||||||
|  |     private String teacherId; | ||||||
|  |     private String stuId; | ||||||
|  |     private String Address; | ||||||
|  |     private int day;//周几
 | ||||||
|  |     private int pos;//第几节
 | ||||||
|  |     private String tableIdMsg;//整个课程表的唯一id
 | ||||||
|  |     private String mark;//注意事项
 | ||||||
|  | 
 | ||||||
|  |     public TableBean() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getMark() { | ||||||
|  |         return mark; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setMark(String mark) { | ||||||
|  |         this.mark = mark; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTableIdMsg() { | ||||||
|  |         return tableIdMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTableIdMsg(String tableIdMsg) { | ||||||
|  |         this.tableIdMsg = tableIdMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getStuId() { | ||||||
|  |         return stuId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setStuId(String stuId) { | ||||||
|  |         this.stuId = stuId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTeacherId() { | ||||||
|  |         return teacherId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTeacherId(String teacherId) { | ||||||
|  |         this.teacherId = teacherId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public int getPos() { | ||||||
|  |         return pos; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPos(int pos) { | ||||||
|  |         this.pos = pos; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public int getDay() { | ||||||
|  |         return day; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setDay(int day) { | ||||||
|  |         this.day = day; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTableNameMsg() { | ||||||
|  |         return tableNameMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTableNameMsg(String tableNameMsg) { | ||||||
|  |         this.tableNameMsg = tableNameMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTeacherName() { | ||||||
|  |         return teacherName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTeacherName(String teacherName) { | ||||||
|  |         this.teacherName = teacherName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getAddress() { | ||||||
|  |         return Address; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setAddress(String address) { | ||||||
|  |         Address = address; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,60 @@ | |||||||
|  | package com.stu.assistant.bean; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.base.BaseBean; | ||||||
|  | 
 | ||||||
|  | public class TableTimeBean extends BaseBean { | ||||||
|  |     private String time;//具体的某一天
 | ||||||
|  |     private String day;//周几
 | ||||||
|  |     private int tableMsg;//第几节
 | ||||||
|  |     private String mark; | ||||||
|  |     private String teacherId; | ||||||
|  |     private String teacherName; | ||||||
|  | 
 | ||||||
|  |     public int getTableMsg() { | ||||||
|  |         return tableMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTableMsg(int tableMsg) { | ||||||
|  |         this.tableMsg = tableMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTime() { | ||||||
|  |         return time; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTime(String time) { | ||||||
|  |         this.time = time; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getDay() { | ||||||
|  |         return day; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setDay(String day) { | ||||||
|  |         this.day = day; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getMark() { | ||||||
|  |         return mark; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setMark(String mark) { | ||||||
|  |         this.mark = mark; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTeacherId() { | ||||||
|  |         return teacherId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTeacherId(String teacherId) { | ||||||
|  |         this.teacherId = teacherId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTeacherName() { | ||||||
|  |         return teacherName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTeacherName(String teacherName) { | ||||||
|  |         this.teacherName = teacherName; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,54 @@ | |||||||
|  | package com.stu.assistant.bean; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.base.BaseBean; | ||||||
|  | 
 | ||||||
|  | public class TaskBean extends BaseBean { | ||||||
|  |     private String tableNameMsg;//课程名称
 | ||||||
|  |     private String tableIdMsg;//课程名称 id
 | ||||||
|  |     private String taskMsg;//作业内容
 | ||||||
|  |     private String time;//时间
 | ||||||
|  |     private String stuId;//学生
 | ||||||
|  | 
 | ||||||
|  |     public TaskBean() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTableIdMsg() { | ||||||
|  |         return tableIdMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTableIdMsg(String tableIdMsg) { | ||||||
|  |         this.tableIdMsg = tableIdMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTableNameMsg() { | ||||||
|  |         return tableNameMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTableNameMsg(String tableNameMsg) { | ||||||
|  |         this.tableNameMsg = tableNameMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTaskMsg() { | ||||||
|  |         return taskMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTaskMsg(String taskMsg) { | ||||||
|  |         this.taskMsg = taskMsg; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getTime() { | ||||||
|  |         return time; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setTime(String time) { | ||||||
|  |         this.time = time; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getStuId() { | ||||||
|  |         return stuId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setStuId(String stuId) { | ||||||
|  |         this.stuId = stuId; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,76 @@ | |||||||
|  | package com.stu.assistant.bean; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.BmobUser; | ||||||
|  | 
 | ||||||
|  | public class UserInfoBean extends BmobUser { | ||||||
|  |     private String nickName; | ||||||
|  |     public String userId; | ||||||
|  |     public String age; | ||||||
|  |     public String address; | ||||||
|  |     public String userLevel;//等级
 | ||||||
|  |     public String userType;//用户角色
 | ||||||
|  |     public String evaluate;//评分
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public UserInfoBean() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getEvaluate() { | ||||||
|  |         return evaluate; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setEvaluate(String evaluate) { | ||||||
|  |         this.evaluate = evaluate; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getUserLevel() { | ||||||
|  |         return userLevel; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setUserLevel(String userLevel) { | ||||||
|  |         this.userLevel = userLevel; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getUserType() { | ||||||
|  |         return userType; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setUserType(String userType) { | ||||||
|  |         this.userType = userType; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public String getNickName() { | ||||||
|  |         return nickName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setNickName(String nickName) { | ||||||
|  |         this.nickName = nickName; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getUserId() { | ||||||
|  |         return userId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setUserId(String userId) { | ||||||
|  |         this.userId = userId; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getAge() { | ||||||
|  |         return age; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setAge(String age) { | ||||||
|  |         this.age = age; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getAddress() { | ||||||
|  |         return address; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setAddress(String address) { | ||||||
|  |         this.address = address; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,7 @@ | |||||||
|  | package com.stu.assistant.constants; | ||||||
|  | 
 | ||||||
|  | public class ConstansItemManager { | ||||||
|  |     public static final int item_1 = 1; //课表
 | ||||||
|  |     public static final int item_2 = 2; //作业
 | ||||||
|  |     public static final int item_3 = 3; //设置
 | ||||||
|  | } | ||||||
| @ -0,0 +1,13 @@ | |||||||
|  | package com.stu.assistant.constants; | ||||||
|  | 
 | ||||||
|  | public class ConstansTableItemManager { | ||||||
|  |     public static final int item_1 = 1; | ||||||
|  |     public static final int item_2 = 2; | ||||||
|  |     public static final int item_3 = 3; | ||||||
|  |     public static final int item_4 = 4; | ||||||
|  |     public static final int item_5 = 5; | ||||||
|  |     public static final int item_6 = 6; | ||||||
|  |     public static final int item_7 = 7; | ||||||
|  |     public static final int item_99 = 99; | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,10 @@ | |||||||
|  | package com.stu.assistant.constants; | ||||||
|  | 
 | ||||||
|  | public class ConstansUserManager { | ||||||
|  |     public static final String Level_1 = "10"; //管理员
 | ||||||
|  |     public static final String Level_2 = "20";//部门管理
 | ||||||
|  |     public static final String Level_3 = "30";//学生
 | ||||||
|  |     public static final String Level_4 = "40";//大众用户
 | ||||||
|  |     public static final String UserType_1 = "1";//管理员
 | ||||||
|  |     public static final String UserType_2 = "2";//用户
 | ||||||
|  | } | ||||||
| @ -0,0 +1,318 @@ | |||||||
|  | package com.stu.assistant.dialog; | ||||||
|  | 
 | ||||||
|  | import android.app.Activity; | ||||||
|  | import android.text.TextUtils; | ||||||
|  | import android.util.Log; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | import android.widget.EditText; | ||||||
|  | import android.widget.RadioGroup; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | //import com.bigkoo.pickerview.builder.TimePickerBuilder;
 | ||||||
|  | //import com.bigkoo.pickerview.listener.OnTimeSelectListener;
 | ||||||
|  | //import com.bigkoo.pickerview.view.TimePickerView;
 | ||||||
|  | //import com.wwdw.easytimeapplication.R;
 | ||||||
|  | //import com.wwdw.easytimeapplication.contants.AddMoneyBeanType;
 | ||||||
|  | //import com.wwdw.easytimeapplication.uitls.AppTools;
 | ||||||
|  | //import com.wwdw.easytimeapplication.uitls.CalendarUtil;
 | ||||||
|  | //import com.wwdw.easytimeapplication.uitls.MyToast;
 | ||||||
|  | //import com.wwdw.easytimeapplication.uitls.ScriptEngineUtils;
 | ||||||
|  | 
 | ||||||
|  | import com.bigkoo.pickerview.builder.TimePickerBuilder; | ||||||
|  | import com.bigkoo.pickerview.listener.OnTimeSelectListener; | ||||||
|  | import com.bigkoo.pickerview.view.TimePickerView; | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.uitls.AppTools; | ||||||
|  | import com.stu.assistant.uitls.CalendarUtil; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedNoClearUtil; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.Calendar; | ||||||
|  | import java.util.Date; | ||||||
|  | 
 | ||||||
|  | public class DiaogUtil { | ||||||
|  |     private PopWindowUtils popWindowUtils; | ||||||
|  | 
 | ||||||
|  |     public static void showInputDialog(final Activity activity, View parent_view, final String title, final OnShowInputLisenter lisenter) { | ||||||
|  |         final PopWindowUtils popWindowUtils = new PopWindowUtils(activity); | ||||||
|  |         popWindowUtils.setFocusables(true); | ||||||
|  | //        popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity));
 | ||||||
|  |         popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity) - AppTools.dip2px(activity, 20)); | ||||||
|  |         popWindowUtils.setOnViewClickListener(new PopWindowUtils.ContentView() { | ||||||
|  |             @Override | ||||||
|  |             public void getContentView(View contentView, PopWindowUtils popWindow) { | ||||||
|  | 
 | ||||||
|  |             } | ||||||
|  |         }).setConView(R.layout.input_dialog_layout).showInCenter(parent_view); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static void showDelDialog(Activity activity, View parent_view, final String msg, final OnNickNameLisenter lisenter) { | ||||||
|  |         final PopWindowUtils popWindowUtils = new PopWindowUtils(activity); | ||||||
|  |         popWindowUtils.setFocusables(true); | ||||||
|  | //        popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity));
 | ||||||
|  |         popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity) - AppTools.dip2px(activity, 20)); | ||||||
|  |         popWindowUtils.setOnViewClickListener(new PopWindowUtils.ContentView() { | ||||||
|  |             @Override | ||||||
|  |             public void getContentView(View contentView, final PopWindowUtils popWindow) { | ||||||
|  |                 TextView canTv = contentView.findViewById(R.id.tv_can); | ||||||
|  |                 TextView okTv = contentView.findViewById(R.id.tv_ok); | ||||||
|  |                 final TextView editText = contentView.findViewById(R.id.mark_edit); | ||||||
|  |                 if (!TextUtils.isEmpty(msg)) { | ||||||
|  |                     editText.setText("确定要删除" + msg + "吗?"); | ||||||
|  |                 } | ||||||
|  |                 canTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |                 okTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                         lisenter.OnOkBtn(msg, popWindow); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         }).setConView(R.layout.select_color_dialog_layout).showInCenter(parent_view); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static void showOutAppDialog(Activity activity, View parent_view, final String msg, final OnNickNameLisenter lisenter) { | ||||||
|  |         final PopWindowUtils popWindowUtils = new PopWindowUtils(activity); | ||||||
|  |         popWindowUtils.setFocusables(true); | ||||||
|  | //        popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity));
 | ||||||
|  |         popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity) - AppTools.dip2px(activity, 20)); | ||||||
|  |         popWindowUtils.setOnViewClickListener(new PopWindowUtils.ContentView() { | ||||||
|  |             @Override | ||||||
|  |             public void getContentView(View contentView, final PopWindowUtils popWindow) { | ||||||
|  |                 TextView canTv = contentView.findViewById(R.id.tv_can); | ||||||
|  |                 TextView okTv = contentView.findViewById(R.id.tv_ok); | ||||||
|  |                 final TextView editText = contentView.findViewById(R.id.mark_edit); | ||||||
|  |                 editText.setText("确定退出?"); | ||||||
|  |                 canTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |                 okTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                         lisenter.OnOkBtn(msg, popWindow); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         }).setConView(R.layout.select_color_dialog_layout).showInCenter(parent_view); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static void showSelectColorDialog(Activity activity, View parent_view, final String msg, final OnNickNameLisenter lisenter) { | ||||||
|  |         final PopWindowUtils popWindowUtils = new PopWindowUtils(activity); | ||||||
|  |         popWindowUtils.setFocusables(true); | ||||||
|  | //        popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity));
 | ||||||
|  |         popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity) - AppTools.dip2px(activity, 20)); | ||||||
|  |         popWindowUtils.setOnViewClickListener(new PopWindowUtils.ContentView() { | ||||||
|  |             @Override | ||||||
|  |             public void getContentView(View contentView, final PopWindowUtils popWindow) { | ||||||
|  |                 TextView canTv = contentView.findViewById(R.id.tv_can); | ||||||
|  |                 TextView okTv = contentView.findViewById(R.id.tv_ok); | ||||||
|  |                 RadioGroup radioGroup = contentView.findViewById(R.id.rg); | ||||||
|  |                 canTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |                 okTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId(); | ||||||
|  |                         if (checkedRadioButtonId == R.id.rb_1) { | ||||||
|  |                             SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.isTheme,SharedConfig.isThemeMy); | ||||||
|  |                             lisenter.OnOkBtn(msg, popWindow); | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|  |                         if (checkedRadioButtonId == R.id.rb_2) { | ||||||
|  |                             SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.isTheme,SharedConfig.isThemeSys); | ||||||
|  |                             lisenter.OnOkBtn(msg, popWindow); | ||||||
|  |                         } | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         }).setConView(R.layout.select_color_dialog_layout).showInCenter(parent_view); | ||||||
|  |     } | ||||||
|  |     public static void showSelectBgDialog(Activity activity, View parent_view, final OnNickNameLisenter lisenter) { | ||||||
|  |         final PopWindowUtils popWindowUtils = new PopWindowUtils(activity); | ||||||
|  |         popWindowUtils.setFocusables(true); | ||||||
|  | //        popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity));
 | ||||||
|  |         popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity) - AppTools.dip2px(activity, 20)); | ||||||
|  |         popWindowUtils.setOnViewClickListener(new PopWindowUtils.ContentView() { | ||||||
|  |             @Override | ||||||
|  |             public void getContentView(View contentView, final PopWindowUtils popWindow) { | ||||||
|  |                 TextView canTv = contentView.findViewById(R.id.tv_can); | ||||||
|  |                 TextView okTv = contentView.findViewById(R.id.tv_ok); | ||||||
|  |                 RadioGroup radioGroup = contentView.findViewById(R.id.rg); | ||||||
|  |                 canTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |                 okTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId(); | ||||||
|  |                         if (checkedRadioButtonId == R.id.rb_1) { | ||||||
|  |                             SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.isBg,SharedConfig.isBg_1); | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|  |                         if (checkedRadioButtonId == R.id.rb_2) { | ||||||
|  |                             SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.isBg,SharedConfig.isBg_2); | ||||||
|  |                         } | ||||||
|  |                         if (checkedRadioButtonId == R.id.rb_3) { | ||||||
|  |                             SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.isBg,SharedConfig.isBg_3); | ||||||
|  |                         } | ||||||
|  |                         if (checkedRadioButtonId == R.id.rb_4) { | ||||||
|  |                             SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.isBg,SharedConfig.isBg_4); | ||||||
|  |                         } | ||||||
|  |                         lisenter.OnOkBtn("", popWindow); | ||||||
|  |                         popWindow.dismiss(); | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         }).setConView(R.layout.select_bg_dialog_layout).showInCenter(parent_view); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static void showTipDialog(Activity activity, View parent_view, final String msg, final OnNickNameLisenter lisenter) { | ||||||
|  |         final PopWindowUtils popWindowUtils = new PopWindowUtils(activity); | ||||||
|  |         popWindowUtils.setFocusables(true); | ||||||
|  |         popWindowUtils.setEditDissmiss(false); | ||||||
|  | //        popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity));
 | ||||||
|  |         popWindowUtils.setWidthSize(AppTools.getScreenWidth(activity) - AppTools.dip2px(activity, 20)); | ||||||
|  |         popWindowUtils.setOnViewClickListener(new PopWindowUtils.ContentView() { | ||||||
|  |             @Override | ||||||
|  |             public void getContentView(View contentView, final PopWindowUtils popWindow) { | ||||||
|  |                 TextView canTv = contentView.findViewById(R.id.tv_can); | ||||||
|  |                 TextView okTv = contentView.findViewById(R.id.tv_ok); | ||||||
|  |                 final EditText editText = contentView.findViewById(R.id.mark_edit); | ||||||
|  |                 okTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |                     @Override | ||||||
|  |                     public void onClick(View view) { | ||||||
|  |                         String ymd = new CalendarUtil().getYMD3(); | ||||||
|  |                         Log.i("hx", "--ymd-->" + ymd); | ||||||
|  |                         int num = Integer.parseInt(ymd.substring(ymd.length() - 1, ymd.length())) + 3; | ||||||
|  |                         Log.i("hx", "--num-->" + num); | ||||||
|  |                         String pwd = ymd + ymd.substring(ymd.length() - 2, ymd.length()) + num; | ||||||
|  |                         Log.i("hx", "--pwd-->" + pwd); | ||||||
|  | 
 | ||||||
|  |                         String msgNew = editText.getText().toString(); | ||||||
|  |                         if (TextUtils.isEmpty(msgNew)) { | ||||||
|  |                             MyToast.show("请输入密码"); | ||||||
|  |                             return; | ||||||
|  |                         } | ||||||
|  |                         String uidFromBase64 = AppTools.getUidFromBase64(msgNew); | ||||||
|  |                         Log.i("hx", "--msgNew--->" + msgNew + "-uidFromBase64-->" + uidFromBase64); | ||||||
|  |                         if (uidFromBase64.equals(pwd) || uidFromBase64.equals("10001")) { | ||||||
|  |                             popWindowUtils.setEditDissmiss(true); | ||||||
|  |                             if (uidFromBase64.equals("10001")) { | ||||||
|  |                                 String addDay = new CalendarUtil().setAddDay(new Date(), 365 * 10); | ||||||
|  |                                 SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.initTime, addDay); | ||||||
|  |                             } else { | ||||||
|  |                                 String addDay = new CalendarUtil().setAddDay(new Date(), 3); | ||||||
|  |                                 SharedNoClearUtil.create(BaseApplion.application).putString(SharedConfig.initTime, addDay); | ||||||
|  |                             } | ||||||
|  |                             popWindow.dismiss(); | ||||||
|  |                             lisenter.OnOkBtn(msgNew, popWindow); | ||||||
|  |                         } else { | ||||||
|  |                             MyToast.show("密码错误"); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 }); | ||||||
|  |             } | ||||||
|  |         }).setConView(R.layout.tip_dialog_layout).showInCenter(parent_view); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public static void showSelectTimeDialog(Activity activity, final OnSelectLisenter lisenter) { | ||||||
|  |         Calendar selectedDate = Calendar.getInstance(); | ||||||
|  |         CalendarUtil instance = CalendarUtil.getInstance(); | ||||||
|  |         Date date1 = instance.strToDate2(instance.getYMDHM()); | ||||||
|  |         Date date = instance.setAddYear2(date1, 10); | ||||||
|  |         Calendar instance1 = Calendar.getInstance(); | ||||||
|  |         instance1.setTime(date); | ||||||
|  |         selectedDate.setTime(date1); | ||||||
|  |         final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | ||||||
|  |         boolean[] booleans = {true, true, true, true, true, false}; | ||||||
|  |         TimePickerView pvTime = new TimePickerBuilder(activity, new OnTimeSelectListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onTimeSelect(Date date, View v1) { | ||||||
|  |                 String time = dateFormat.format(date); | ||||||
|  |                 lisenter.OnOkBtn(time); | ||||||
|  |             } | ||||||
|  |         }).setDecorView((ViewGroup) activity.getWindow().getDecorView().findViewById(android.R.id.content)) | ||||||
|  |                 .setSubmitColor(R.color.app_yellow) | ||||||
|  |                 .setCancelColor(R.color.app_yellow) | ||||||
|  |                 .setDate(selectedDate) | ||||||
|  |                 .setType(booleans) | ||||||
|  |                 .isCyclic(true) | ||||||
|  |                 .build(); | ||||||
|  |         pvTime.show(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnSelectLisenter { | ||||||
|  |         void OnOkBtn(String time); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private static void clickListener(final TextView callTv, final TextView moneyTv) { | ||||||
|  |         callTv.setOnClickListener(new View.OnClickListener() { | ||||||
|  |             @Override | ||||||
|  |             public void onClick(View view) { | ||||||
|  |                 String moneyMsg = getMoney(moneyTv); | ||||||
|  |                 String s = getNum(callTv); | ||||||
|  |                 String msg = moneyMsg + s; | ||||||
|  |                 Log.i("stf", "-clickListener-->" + msg + "-s-->" + s + "-moneyMsg-->" + moneyMsg); | ||||||
|  |                 if (!TextUtils.isEmpty(msg)) { | ||||||
|  |                     if ((msg.endsWith("+")) || (msg.endsWith("-"))) { | ||||||
|  |                     } else { | ||||||
|  |                         setMoney(msg, moneyTv); | ||||||
|  |                     } | ||||||
|  |                 } else { | ||||||
|  |                     setMoney(s, moneyTv); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static String getMoney(TextView textView) { | ||||||
|  |         return textView.getText().toString().trim().replace(" ", ""); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static String getNum(TextView textView) { | ||||||
|  |         return textView.getText().toString().trim().replace(" ", ""); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static void setMoney(String msg, TextView textView) { | ||||||
|  |         textView.setText(msg); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public interface OnShowInputLisenter { | ||||||
|  |         void OnOkBtn(String moneyMsg, String markMsg, String time); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnNickNameLisenter { | ||||||
|  |         void OnOkBtn(String msg, PopWindowUtils popWindow); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnSelectTypeLisenter { | ||||||
|  |         void OnOkBtn(int type); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,61 @@ | |||||||
|  | package com.stu.assistant.net; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @ClassName Api | ||||||
|  |  * @Description 存储接口地址 | ||||||
|  |  * @Author kaiguo | ||||||
|  |  * @Date 2020/3/17 11:01 | ||||||
|  |  */ | ||||||
|  | public interface Api { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 登录 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     String LOGIN = "user/login"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |      /** | ||||||
|  |       * @Description: (描述) 根据id获取货架信息 | ||||||
|  |       * @author stf | ||||||
|  |       * @date 2021/11/30 | ||||||
|  |       */ | ||||||
|  | 
 | ||||||
|  |     String getShelvedById = "whManage/getShelvedById"; | ||||||
|  | 
 | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * @Description: (描述) 根据id获取订单明细信息 | ||||||
|  |      * @author stf | ||||||
|  |      * @date 2021/11/30 | ||||||
|  |      */ | ||||||
|  |      | ||||||
|  |     String getDetailById = "inOut/getDetailById"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * @Description: (描述)批量入库 | ||||||
|  |      * @author stf | ||||||
|  |      * @date 2021/11/30 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     String batchWarehousing = "whApp/batchWarehousing"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * @Description: (描述)批量出库 | ||||||
|  |      * @author stf | ||||||
|  |      * @date 2021/11/30 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     String batchExWarehouse = "whApp/batchExWarehouse"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * @Description: (描述)清空货架 | ||||||
|  |      * @author stf | ||||||
|  |      * @date 2021/11/30 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     String emptyShelves = "whApp/emptyShelves"; | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,46 @@ | |||||||
|  | package com.stu.assistant.net; | ||||||
|  | 
 | ||||||
|  | public class NetConfig { | ||||||
|  |     /** | ||||||
|  |      * 请求授权码 | ||||||
|  |      */ | ||||||
|  |     public static final String SERVER_URL = "http://47.102.116.226/api/"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 响应的返回key | ||||||
|  |      */ | ||||||
|  |     public class Code { | ||||||
|  |         public static final String SUCCESS = "success"; | ||||||
|  |         public static final String MSG = "errorMsg"; | ||||||
|  |         public static final String CODE = "errorCode"; | ||||||
|  |         public static final String MODEL = "data"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 网络请求Url | ||||||
|  |      */ | ||||||
|  |     public static class Url { | ||||||
|  | 
 | ||||||
|  |         //服务器地址
 | ||||||
|  |         interface BaseUrl { | ||||||
|  |             /** | ||||||
|  |              * 新昌环境 | ||||||
|  |              */ | ||||||
|  |             String SERVER_PRODUCTION = "http://47.102.116.226:28890/wh/"; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         /** | ||||||
|  |          * 返回服务器基础地址 | ||||||
|  |          */ | ||||||
|  |         public static String getBaseUrl(String url) { | ||||||
|  |             return BaseUrl.SERVER_PRODUCTION + url; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static final String NetError = "暂无网络连接"; | ||||||
|  |     public static final String ConnectError = "服务器连接失败"; | ||||||
|  |     public static final String DataError = "数据返回异常"; | ||||||
|  |     public static final int Success = 200; | ||||||
|  |     public static final int OutApp = 401; | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | package com.stu.assistant.net.imp; | ||||||
|  | 
 | ||||||
|  | import com.lzy.okgo.model.Response; | ||||||
|  | 
 | ||||||
|  | public interface OnModleResultListener<T> { | ||||||
|  |     void onSuccess(T bean); | ||||||
|  | 
 | ||||||
|  |     void onError(String e); | ||||||
|  | 
 | ||||||
|  |     void onConnectFail(String msg, Response<String> response); | ||||||
|  | } | ||||||
| @ -0,0 +1,77 @@ | |||||||
|  | package com.stu.assistant.presenter; | ||||||
|  | 
 | ||||||
|  | import android.text.TextUtils; | ||||||
|  | 
 | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.stu.assistant.activity.LoginActivity; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.base.BasePresenter; | ||||||
|  | import com.stu.assistant.bean.UserInfoBean; | ||||||
|  | import com.stu.assistant.uitls.LogUtils; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.BmobUser; | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.SaveListener; | ||||||
|  | 
 | ||||||
|  | public class LoginPresenter extends BasePresenter { | ||||||
|  |     private LoginActivity activity; | ||||||
|  | 
 | ||||||
|  |     public LoginPresenter(LoginActivity mAct) { | ||||||
|  |         this.activity = mAct; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void saveUser(UserInfoBean bean) { | ||||||
|  |         SharedUtil.create(BaseApplion.application).putString(SharedConfig.loginName, bean.getUsername()); | ||||||
|  |         SharedUtil.create(BaseApplion.application).putString(SharedConfig.nickName, bean.getNickName()); | ||||||
|  |         SharedUtil.create(BaseApplion.application).putString(SharedConfig.whToken, bean.getSessionToken()); | ||||||
|  |         SharedUtil.create(BaseApplion.application).putString(SharedConfig.objectId, bean.getObjectId()); | ||||||
|  |         SharedUtil.create(BaseApplion.application).putString(SharedConfig.userLevel, bean.getUserLevel()); | ||||||
|  |         SharedUtil.create(BaseApplion.application).putString(SharedConfig.userType, bean.getUserType()); | ||||||
|  |         SharedUtil.create(BaseApplion.application).putBoolean(SharedConfig.isLogin, true); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public boolean getIsLogin() { | ||||||
|  |         return SharedUtil.create(BaseApplion.application).getBoolean(SharedConfig.isLogin, false); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void loginIn(String usertNameEditMsg, String usertPasswordEditMsg, OnLoginResultListener loginResultListener) { | ||||||
|  |         if (TextUtils.isEmpty(usertNameEditMsg)) { | ||||||
|  |             loginResultListener.errorMsg("请输入账号"); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (TextUtils.isEmpty(usertPasswordEditMsg)) { | ||||||
|  |             loginResultListener.errorMsg("请输入密码"); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         activity.showProDialog("正在登录,请稍后..."); | ||||||
|  | 
 | ||||||
|  |         UserInfoBean userInfoBean = new UserInfoBean(); | ||||||
|  |         userInfoBean.setUsername(usertNameEditMsg); | ||||||
|  |         userInfoBean.setPassword(usertPasswordEditMsg); | ||||||
|  |         userInfoBean.login(new SaveListener<UserInfoBean>() { | ||||||
|  |             @Override | ||||||
|  |             public void done(UserInfoBean userInfoBean1, BmobException e) { | ||||||
|  |                 activity.dismissProDialog(); | ||||||
|  |                 if (e == null) { | ||||||
|  |                     UserInfoBean user = BmobUser.getCurrentUser(UserInfoBean.class); | ||||||
|  |                     LogUtils.i("hx","-UserInfoBean--->"+new Gson().toJson(user)); | ||||||
|  |                     saveUser(user); | ||||||
|  |                     loginResultListener.isSucLogin(user); | ||||||
|  |                 } else { | ||||||
|  |                     LogUtils.i("hx","-登录失败--->"+e.getMessage()); | ||||||
|  |                     loginResultListener.errorMsg("用户或密码不正确"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnLoginResultListener { | ||||||
|  |         void isSucLogin(UserInfoBean bean); | ||||||
|  | 
 | ||||||
|  |         void errorMsg(String msg); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,21 @@ | |||||||
|  | package com.stu.assistant.presenter; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | import com.stu.assistant.bean.MainModuleBean; | ||||||
|  | import com.stu.assistant.constants.ConstansItemManager; | ||||||
|  | import com.stu.assistant.constants.ConstansUserManager; | ||||||
|  | import com.stu.assistant.uitls.SharedConfig; | ||||||
|  | import com.stu.assistant.uitls.SharedUtil; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | 
 | ||||||
|  | public class MainPresenter { | ||||||
|  |     public ArrayList<MainModuleBean> getData() { | ||||||
|  |         ArrayList moduleBeansList = new ArrayList<>(); | ||||||
|  |         moduleBeansList.add(new MainModuleBean("课表", ConstansItemManager.item_1, R.mipmap.ic_timetable)); | ||||||
|  |         moduleBeansList.add(new MainModuleBean("作业", ConstansItemManager.item_2, R.mipmap.ic_task)); | ||||||
|  |         moduleBeansList.add(new MainModuleBean("设置", ConstansItemManager.item_3, R.mipmap.ic_setting)); | ||||||
|  |         return moduleBeansList; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,38 @@ | |||||||
|  | package com.stu.assistant.presenter; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.activity.RegisterActivity; | ||||||
|  | import com.stu.assistant.base.BasePresenter; | ||||||
|  | import com.stu.assistant.bean.UserInfoBean; | ||||||
|  | import com.stu.assistant.uitls.MyToast; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.SaveListener; | ||||||
|  | 
 | ||||||
|  | public class RegisterPresenter extends BasePresenter { | ||||||
|  |     RegisterActivity mActivity; | ||||||
|  | 
 | ||||||
|  |     public RegisterPresenter(RegisterActivity mActivity) { | ||||||
|  |         this.mActivity = mActivity; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void registerUser(UserInfoBean userBean, OnRegisterListener listener) { | ||||||
|  |         mActivity.showProDialog("正在注册...."); | ||||||
|  |         userBean.signUp(new SaveListener<UserInfoBean>() { | ||||||
|  |             @Override | ||||||
|  |             public void done(UserInfoBean objectId, BmobException e) { | ||||||
|  |                 mActivity.dismissProDialog(); | ||||||
|  |                 if (e == null) { | ||||||
|  |                     MyToast.show("注册成功"); | ||||||
|  |                     listener.registerListener(userBean); | ||||||
|  |                 } else { | ||||||
|  |                     MyToast.show("注册失败:" + e.getMessage()); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnRegisterListener { | ||||||
|  |         void registerListener(UserInfoBean userInfoBean); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,19 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.util.Log; | ||||||
|  | 
 | ||||||
|  | public class BtnClickUtil { | ||||||
|  |     // 两次点击按钮之间的点击间隔不能少于1000毫秒
 | ||||||
|  |     private static final int MIN_CLICK_DELAY_TIME = 1000; | ||||||
|  |     private static long lastClickTime; | ||||||
|  |     public static boolean getIsOk(){ | ||||||
|  |         long curClickTime = System.currentTimeMillis(); | ||||||
|  |         Log.i("stf","-BtnClickUtil--->"+(curClickTime - lastClickTime)); | ||||||
|  |         if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) { | ||||||
|  |             // 超过点击间隔后再将lastClickTime重置为当前点击时间
 | ||||||
|  |             lastClickTime = curClickTime; | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,48 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.view.KeyEvent; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.inputmethod.EditorInfo; | ||||||
|  | import android.widget.EditText; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | public class CodeConfig { | ||||||
|  |     private static CodeConfig newIns; | ||||||
|  |     private Context mContext; | ||||||
|  | 
 | ||||||
|  |     private CodeConfig(Context context) { | ||||||
|  |         mContext = context; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static CodeConfig newInstance(Context context) { | ||||||
|  |         if (newIns == null) { | ||||||
|  |             synchronized (CodeConfig.class) { | ||||||
|  |                 if (newIns == null) { | ||||||
|  |                     newIns = new CodeConfig(context); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return newIns; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setEcitTextviewClickListener(final EditText mEditText, final OnEcitTextviewClickListener listener) { | ||||||
|  | 
 | ||||||
|  |         mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { | ||||||
|  |             @Override | ||||||
|  |             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { | ||||||
|  |                 if (actionId == EditorInfo.IME_ACTION_SEND | ||||||
|  |                         || actionId == EditorInfo.IME_ACTION_DONE | ||||||
|  |                         || (event != null && KeyEvent.KEYCODE_ENTER == event.getKeyCode() && KeyEvent.ACTION_DOWN == event.getAction())) { | ||||||
|  |                     listener.OnEcitTextviewClickListener(v); | ||||||
|  | 
 | ||||||
|  |                 } | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public interface OnEcitTextviewClickListener { | ||||||
|  |         void OnEcitTextviewClickListener(View view); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,256 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.content.pm.ApplicationInfo; | ||||||
|  | import android.content.pm.PackageInfo; | ||||||
|  | import android.content.pm.PackageManager; | ||||||
|  | import android.os.Build; | ||||||
|  | import android.os.Environment; | ||||||
|  | import android.os.Looper; | ||||||
|  | import android.text.TextUtils; | ||||||
|  | import android.util.Log; | ||||||
|  | import android.widget.Toast; | ||||||
|  | 
 | ||||||
|  | import java.io.File; | ||||||
|  | import java.io.FileOutputStream; | ||||||
|  | import java.io.PrintWriter; | ||||||
|  | import java.io.StringWriter; | ||||||
|  | import java.io.Writer; | ||||||
|  | import java.lang.reflect.Field; | ||||||
|  | import java.text.DateFormat; | ||||||
|  | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Created by stf on 2018-11-05. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | public class CrashHandler implements Thread.UncaughtExceptionHandler { | ||||||
|  | 
 | ||||||
|  |     public String TAG = "CrashHandler"; | ||||||
|  |     // 系统默认的UncaughtException处理类
 | ||||||
|  |     private Thread.UncaughtExceptionHandler mDefaultHandler; | ||||||
|  |     // CrashHandler实例
 | ||||||
|  |     private static CrashHandler INSTANCE; | ||||||
|  |     // 程序的Context对象
 | ||||||
|  |     private Context mContext; | ||||||
|  |     // 用来存储设备信息和异常信息
 | ||||||
|  |     private Map<String, String> infos = new HashMap<String, String>(); | ||||||
|  |     //显示时间
 | ||||||
|  |     private long time; | ||||||
|  |     //文件夹地址
 | ||||||
|  |     private String pathCrashHandler = "CrashLog"; | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 保证只有一个CrashHandler实例 | ||||||
|  |      */ | ||||||
|  |     private CrashHandler() { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 获取CrashHandler实例 ,单例模式 | ||||||
|  |      */ | ||||||
|  |     public static CrashHandler getInstance() { | ||||||
|  |         if (INSTANCE == null) { | ||||||
|  |             INSTANCE = new CrashHandler(); | ||||||
|  |         } | ||||||
|  |         return INSTANCE; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 初始化 | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     public CrashHandler setDelayTime(long time) { | ||||||
|  |         this.time = time; | ||||||
|  |         return this; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public CrashHandler setTAG(String TAG) { | ||||||
|  |         this.TAG = TAG; | ||||||
|  |         return this; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public CrashHandler setPath(String pathCrashHandler) { | ||||||
|  |         this.pathCrashHandler = pathCrashHandler; | ||||||
|  |         return this; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | //    public CrashHandler setPath() {
 | ||||||
|  | //        this.pathCrashHandler = AppConfig.Path_Crash;
 | ||||||
|  | //        return this;
 | ||||||
|  | //    }
 | ||||||
|  | 
 | ||||||
|  |     public void init(Context context) { | ||||||
|  |         mContext = context; | ||||||
|  |         if (isAppDeBug()) { | ||||||
|  |             Log.i("stf", "-app在-debug->"); | ||||||
|  |             // 获取系统默认的UncaughtException处理器
 | ||||||
|  |             mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler(); | ||||||
|  |             // 设置该CrashHandler为程序的默认处理器
 | ||||||
|  |             Thread.setDefaultUncaughtExceptionHandler(this); | ||||||
|  |         } else { | ||||||
|  |             Log.i("stf", "-app在-realse->"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 当UncaughtException发生时会转入该函数来处理 | ||||||
|  |      */ | ||||||
|  |     @Override | ||||||
|  |     public void uncaughtException(Thread thread, Throwable ex) { | ||||||
|  |         if (!handleException(ex) && mDefaultHandler != null) { | ||||||
|  |             // 如果用户没有处理则让系统默认的异常处理器来处理
 | ||||||
|  |             mDefaultHandler.uncaughtException(thread, ex); | ||||||
|  |         } else { | ||||||
|  |             try { | ||||||
|  |                 Thread.sleep(time); | ||||||
|  |             } catch (InterruptedException e) { | ||||||
|  |                 Log.e(TAG, " error : " + e); | ||||||
|  |             } | ||||||
|  |             // 退出程序
 | ||||||
|  |             android.os.Process.killProcess(android.os.Process.myPid()); | ||||||
|  |             System.exit(1); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 自定义错误处理,收集错误信息 发送错误报告等操作均在此完成. | ||||||
|  |      * | ||||||
|  |      * @param ex | ||||||
|  |      * @return true:如果处理了该异常信息;否则返回false. | ||||||
|  |      */ | ||||||
|  |     private boolean handleException(Throwable ex) { | ||||||
|  |         if (ex == null) { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |         ex.printStackTrace(); | ||||||
|  | 
 | ||||||
|  |         // 使用Toast来显示异常信息
 | ||||||
|  |         new Thread() { | ||||||
|  |             @Override | ||||||
|  |             public void run() { | ||||||
|  |                 Looper.prepare(); | ||||||
|  |                 try { | ||||||
|  |                     Toast.makeText(mContext, "程序出现异常,清理app进程后,可清除此卡顿", Toast.LENGTH_LONG).show(); | ||||||
|  |                 }catch (Exception e){ | ||||||
|  |                     e.fillInStackTrace(); | ||||||
|  |                 } | ||||||
|  |                 Looper.loop(); | ||||||
|  |             } | ||||||
|  |         }.start(); | ||||||
|  |         // 收集设备参数信息
 | ||||||
|  |         collectDeviceInfo(mContext); | ||||||
|  |         // 保存日志文件
 | ||||||
|  |         saveCrashInfo2File(ex); | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 收集设备参数信息 | ||||||
|  |      * | ||||||
|  |      * @param ctx | ||||||
|  |      */ | ||||||
|  |     public void collectDeviceInfo(Context ctx) { | ||||||
|  |         try { | ||||||
|  |             PackageManager pm = ctx.getPackageManager(); | ||||||
|  |             PackageInfo pi = pm.getPackageInfo(ctx.getPackageName(), | ||||||
|  |                     PackageManager.GET_ACTIVITIES); | ||||||
|  |             if (pi != null) { | ||||||
|  |                 String versionName = pi.versionName == null ? "null" : pi.versionName; | ||||||
|  |                 String versionCode = pi.versionCode + ""; | ||||||
|  |                 infos.put("versionName", versionName); | ||||||
|  |                 infos.put("versionCode", versionCode); | ||||||
|  |             } | ||||||
|  |         } catch (PackageManager.NameNotFoundException e) { | ||||||
|  |             Log.e(TAG, "an error occured when collect package info" + e); | ||||||
|  |         } | ||||||
|  |         Field[] fields = Build.class.getDeclaredFields(); | ||||||
|  |         for (Field field : fields) { | ||||||
|  |             try { | ||||||
|  |                 field.setAccessible(true); | ||||||
|  |                 infos.put(field.getName(), field.get(null).toString()); | ||||||
|  |                 Log.e(TAG, field.getName() + " : " + field.get(null)); | ||||||
|  |             } catch (Exception e) { | ||||||
|  |                 Log.e(TAG, "an error occured when collect crash info" + e); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 保存错误信息到文件中 | ||||||
|  |      * | ||||||
|  |      * @param ex | ||||||
|  |      * @return 返回文件名称, 便于将文件传送到服务器 | ||||||
|  |      */ | ||||||
|  |     private String saveCrashInfo2File(Throwable ex) { | ||||||
|  |         DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); | ||||||
|  |         StringBuffer sb = new StringBuffer(); | ||||||
|  |         for (Map.Entry<String, String> entry : infos.entrySet()) { | ||||||
|  |             String key = entry.getKey(); | ||||||
|  |             String value = entry.getValue(); | ||||||
|  |             sb.append(key + "=" + value + "\n"); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         Writer writer = new StringWriter(); | ||||||
|  |         PrintWriter printWriter = new PrintWriter(writer); | ||||||
|  |         ex.printStackTrace(printWriter); | ||||||
|  |         Throwable cause = ex.getCause(); | ||||||
|  |         while (cause != null) { | ||||||
|  |             cause.printStackTrace(printWriter); | ||||||
|  |             cause = cause.getCause(); | ||||||
|  |         } | ||||||
|  |         printWriter.close(); | ||||||
|  |         String result = writer.toString(); | ||||||
|  |         sb.append(result); | ||||||
|  |         try { | ||||||
|  |             long timestamp = System.currentTimeMillis(); | ||||||
|  |             String time = formatter.format(new Date()); | ||||||
|  |             String fileName = "log-" + time + "-" + timestamp + ".log"; | ||||||
|  |             if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { | ||||||
|  |                 String path = Environment.getExternalStorageState() + "/" + pathCrashHandler + "/log"; | ||||||
|  |                 File dir = new File(path); | ||||||
|  |                 if (!dir.exists()) { | ||||||
|  |                     dir.mkdirs(); | ||||||
|  |                 } | ||||||
|  |                 Log.e(TAG, "错误日志记录位置=" + dir.getAbsolutePath()); | ||||||
|  |                 FileOutputStream fos = new FileOutputStream(path + "/" + fileName); | ||||||
|  |                 fos.write(sb.toString().getBytes()); | ||||||
|  |                 fos.close(); | ||||||
|  |             } | ||||||
|  |             return fileName; | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             Log.e(TAG, "an error occured while writing file..." + e); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // 判断app 是不是 debug模式
 | ||||||
|  |     public boolean isAppDeBug() { | ||||||
|  | 
 | ||||||
|  |         if (mContext == null) { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |         try { | ||||||
|  |             if (TextUtils.isEmpty(mContext.getPackageName())) { | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             e.fillInStackTrace(); | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         try { | ||||||
|  |             PackageManager pm = mContext.getPackageManager(); | ||||||
|  |             ApplicationInfo ai = pm.getApplicationInfo(mContext.getPackageName(), 0); | ||||||
|  |             return ai != null && (ai.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; | ||||||
|  |         } catch (PackageManager.NameNotFoundException e) { | ||||||
|  |             e.printStackTrace(); | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,53 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | 
 | ||||||
|  | import com.yanyusong.y_divideritemdecoration.Y_Divider; | ||||||
|  | import com.yanyusong.y_divideritemdecoration.Y_DividerBuilder; | ||||||
|  | import com.yanyusong.y_divideritemdecoration.Y_DividerItemDecoration; | ||||||
|  | 
 | ||||||
|  | public class DividerItemDecoration0Util extends Y_DividerItemDecoration { | ||||||
|  |     private boolean isPackage; | ||||||
|  |     private int width, height; | ||||||
|  | 
 | ||||||
|  |     public DividerItemDecoration0Util(Context context, boolean pac) { | ||||||
|  |         super(context); | ||||||
|  |         isPackage = pac; | ||||||
|  |         if (isPackage) { | ||||||
|  |             width = 5; | ||||||
|  |             height = 10; | ||||||
|  |         } else { | ||||||
|  |             width=0; | ||||||
|  |             height = 1; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public Y_Divider getDivider(int itemPosition) { | ||||||
|  |         Y_Divider divider = null; | ||||||
|  |         switch (itemPosition % 2) { | ||||||
|  | 
 | ||||||
|  |             case 0: | ||||||
|  |                 //每一行第一个显示rignt和bottom
 | ||||||
|  |                 divider = new Y_DividerBuilder() | ||||||
|  |                         .setRightSideLine(true, 0x00F6F6F6, width, 0, 0) | ||||||
|  |                         .setBottomSideLine(true, 0x00F6F6F6, height, 0, 0) | ||||||
|  |                         .create(); | ||||||
|  |                 break; | ||||||
|  |             case 1: | ||||||
|  |                 //第二个显示Left和bottom
 | ||||||
|  |                 divider = new Y_DividerBuilder() | ||||||
|  |                         .setLeftSideLine(true, 0x00F6F6F6, width, 0, 0) | ||||||
|  |                         .setBottomSideLine(true, 0x00F6F6F6, height, 0, 0) | ||||||
|  |                         .create(); | ||||||
|  |                 break; | ||||||
|  |             default: | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |         return divider; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,53 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | 
 | ||||||
|  | import com.yanyusong.y_divideritemdecoration.Y_Divider; | ||||||
|  | import com.yanyusong.y_divideritemdecoration.Y_DividerBuilder; | ||||||
|  | import com.yanyusong.y_divideritemdecoration.Y_DividerItemDecoration; | ||||||
|  | 
 | ||||||
|  | public class DividerItemDecorationUtil extends Y_DividerItemDecoration { | ||||||
|  |     private boolean isPackage; | ||||||
|  |     private int width, height; | ||||||
|  | 
 | ||||||
|  |     public DividerItemDecorationUtil(Context context, boolean pac) { | ||||||
|  |         super(context); | ||||||
|  |         isPackage = pac; | ||||||
|  |         if (isPackage) { | ||||||
|  |             width = 5; | ||||||
|  |             height = 10; | ||||||
|  |         } else { | ||||||
|  |             width=0; | ||||||
|  |             height = 10; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public Y_Divider getDivider(int itemPosition) { | ||||||
|  |         Y_Divider divider = null; | ||||||
|  |         switch (itemPosition % 2) { | ||||||
|  | 
 | ||||||
|  |             case 0: | ||||||
|  |                 //每一行第一个显示rignt和bottom
 | ||||||
|  |                 divider = new Y_DividerBuilder() | ||||||
|  |                         .setRightSideLine(true, 0x00F6F6F6, width, 0, 0) | ||||||
|  |                         .setBottomSideLine(true, 0x00F6F6F6, height, 0, 0) | ||||||
|  |                         .create(); | ||||||
|  |                 break; | ||||||
|  |             case 1: | ||||||
|  |                 //第二个显示Left和bottom
 | ||||||
|  |                 divider = new Y_DividerBuilder() | ||||||
|  |                         .setLeftSideLine(true, 0x00F6F6F6, width, 0, 0) | ||||||
|  |                         .setBottomSideLine(true, 0x00F6F6F6, height, 0, 0) | ||||||
|  |                         .create(); | ||||||
|  |                 break; | ||||||
|  |             default: | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |         return divider; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,107 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | import android.animation.ObjectAnimator; | ||||||
|  | import android.content.Context; | ||||||
|  | import android.util.AttributeSet; | ||||||
|  | import android.util.Log; | ||||||
|  | import android.view.MotionEvent; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | import android.view.animation.DecelerateInterpolator; | ||||||
|  | 
 | ||||||
|  | import androidx.appcompat.widget.AppCompatTextView; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | public class DragTextView extends AppCompatTextView { | ||||||
|  |     private int parentHeight; | ||||||
|  |     protected int parentWidth; | ||||||
|  |     private int lastX; | ||||||
|  |     private int lastY; | ||||||
|  |     private boolean isDrag; | ||||||
|  |     private ViewGroup parent; | ||||||
|  | 
 | ||||||
|  |     public DragTextView(Context context) { | ||||||
|  |         super(context); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public DragTextView(Context context, AttributeSet attrs) { | ||||||
|  |         super(context, attrs); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public DragTextView(Context context, AttributeSet attrs, int defStyleAttr) { | ||||||
|  |         super(context, attrs, defStyleAttr); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean onTouchEvent(MotionEvent event) { | ||||||
|  |         int rawX = (int) event.getRawX(); | ||||||
|  |         int rawY = (int) event.getRawY(); | ||||||
|  |         switch (event.getAction() & MotionEvent.ACTION_MASK) { | ||||||
|  |             case MotionEvent.ACTION_DOWN: | ||||||
|  |                 this.setAlpha(0.9F); | ||||||
|  |                 this.setPressed(true); | ||||||
|  |                 this.isDrag = false; | ||||||
|  |                 this.getParent().requestDisallowInterceptTouchEvent(true); | ||||||
|  |                 this.lastX = rawX; | ||||||
|  |                 this.lastY = rawY; | ||||||
|  |                 if (this.getParent() != null) { | ||||||
|  |                     this.parent = (ViewGroup) this.getParent(); | ||||||
|  |                     this.parentHeight = this.parent.getHeight(); | ||||||
|  |                     this.parentWidth = this.parent.getWidth(); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             case MotionEvent.ACTION_UP: | ||||||
|  |                 if (!this.isNotDrag()) { | ||||||
|  |                     this.setPressed(false); | ||||||
|  |                     this.moveHide(rawX); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |             case MotionEvent.ACTION_MOVE: | ||||||
|  |                 if ((double) this.parentHeight > 0.2D && (double) this.parentWidth > 0.2D) { | ||||||
|  |                     this.isDrag = true; | ||||||
|  |                     this.setAlpha(0.9F); | ||||||
|  |                     int dx = rawX - this.lastX; | ||||||
|  |                     int dy = rawY - this.lastY; | ||||||
|  |                     int distance = (int) Math.sqrt((double) (dx * dx + dy * dy)); | ||||||
|  |                     if (distance < 2) { | ||||||
|  |                         this.isDrag = false; | ||||||
|  |                     } else { | ||||||
|  |                         float x = this.getX() + (float) dx; | ||||||
|  |                         float y = this.getY() + (float) dy; | ||||||
|  |                         x = x < 0.0F ? 0.0F : (x > (float) (this.parentWidth - this.getWidth()) ? (float) (this.parentWidth - this.getWidth()) : x); | ||||||
|  |                         y = this.getY() < 0.0F ? 0.0F : (this.getY() + (float) this.getHeight() > (float) this.parentHeight ? (float) (this.parentHeight - this.getHeight()) : y); | ||||||
|  |                         this.setX(x); | ||||||
|  |                         this.setY(y); | ||||||
|  |                         this.lastX = rawX; | ||||||
|  |                         this.lastY = rawY; | ||||||
|  |                         Log.i("aa", "isDrag=" + this.isDrag + "getX=" + this.getX() + ";getY=" + this.getY() + ";parentWidth=" + this.parentWidth); | ||||||
|  |                     } | ||||||
|  |                 } else { | ||||||
|  |                     this.isDrag = false; | ||||||
|  |                 } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return !this.isNotDrag() || super.onTouchEvent(event); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private boolean isNotDrag() { | ||||||
|  |         return !this.isDrag && (this.getX() == 0.0F || this.getX() == (float) (this.parentWidth - this.getWidth() - getMarginEnd()) || this.getX() == (float) (this.parentWidth - this.getWidth())); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private int getMarginEnd() { | ||||||
|  |         ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) getLayoutParams(); | ||||||
|  |         int endMargin = params.getMarginEnd(); | ||||||
|  |         return endMargin; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected void moveHide(int rawX) { | ||||||
|  |         if (rawX >= this.parentWidth / 2) { | ||||||
|  |             this.animate().setInterpolator(new DecelerateInterpolator()).setDuration(500L).xBy((float) (this.parentWidth - this.getWidth()) - this.getX()).start(); | ||||||
|  |         } else { | ||||||
|  |             ObjectAnimator oa = ObjectAnimator.ofFloat(this, "x", new float[]{this.getX(), 0.0F}); | ||||||
|  |             oa.setInterpolator(new DecelerateInterpolator()); | ||||||
|  |             oa.setDuration(500L); | ||||||
|  |             oa.start(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,15 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.widget.Toast; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.base.BaseApplion; | ||||||
|  | 
 | ||||||
|  | public class MyToast { | ||||||
|  |     public static void show(Context context,String content){ | ||||||
|  |         Toast.makeText(context, content, Toast.LENGTH_SHORT).show(); | ||||||
|  |     } | ||||||
|  |     public static void show(String content){ | ||||||
|  |         Toast.makeText(BaseApplion.application, content, Toast.LENGTH_SHORT).show(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,51 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.net.ConnectivityManager; | ||||||
|  | import android.net.NetworkInfo; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * @ClassName MoneyUtils | ||||||
|  |  * @Description 网络状态工具类 | ||||||
|  |  * @Author kaiguo | ||||||
|  |  * @Date 2020/3/17 14:57 | ||||||
|  |  */ | ||||||
|  | public class NetworkUtil { | ||||||
|  |     public static boolean isNetWorkAvailable2(Context context) { | ||||||
|  |         ConnectivityManager manager = (ConnectivityManager) context | ||||||
|  |                 .getSystemService(Context.CONNECTIVITY_SERVICE); | ||||||
|  |         if (manager != null) { | ||||||
|  |             NetworkInfo info = manager.getActiveNetworkInfo(); | ||||||
|  |             if (info != null && info.isConnected()) { | ||||||
|  |                 return true; | ||||||
|  |             } else { | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 是否有可用网络 | ||||||
|  |      * | ||||||
|  |      * @param context context | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     public static boolean isNetworkAvailable(Context context) { | ||||||
|  |         ConnectivityManager connectivity = (ConnectivityManager) context | ||||||
|  |                 .getSystemService(Context.CONNECTIVITY_SERVICE); | ||||||
|  |         if (connectivity != null) { | ||||||
|  |             NetworkInfo[] info = connectivity.getAllNetworkInfo(); | ||||||
|  |             if (info != null) { | ||||||
|  |                 for (int i = 0; i < info.length; i++) { | ||||||
|  |                     if (info[i].getState() == NetworkInfo.State.CONNECTED) { | ||||||
|  |                         return true; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,98 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.util.Log; | ||||||
|  | 
 | ||||||
|  | import com.stu.assistant.bean.UserInfoBean; | ||||||
|  | import com.stu.assistant.constants.ConstansUserManager; | ||||||
|  | 
 | ||||||
|  | import cn.bmob.v3.exception.BmobException; | ||||||
|  | import cn.bmob.v3.listener.SaveListener; | ||||||
|  | 
 | ||||||
|  | public class SaveUserData { | ||||||
|  |     public void saveData(){ | ||||||
|  |         StringBuilder stringBuilder = new StringBuilder(); | ||||||
|  |         UserInfoBean userInfoBean = new UserInfoBean(); | ||||||
|  |         userInfoBean.setUsername("100"); | ||||||
|  |         userInfoBean.setPassword("123456"); | ||||||
|  |         userInfoBean.setNickName("管理员"); | ||||||
|  |         userInfoBean.setUserLevel(ConstansUserManager.Level_1); | ||||||
|  |         userInfoBean.setUserType(ConstansUserManager.UserType_1); | ||||||
|  |         userInfoBean.setEvaluate(""); | ||||||
|  | 
 | ||||||
|  |         userInfoBean.signUp(new SaveListener<UserInfoBean>() { | ||||||
|  |             @Override | ||||||
|  |             public void done(UserInfoBean objectId, BmobException e) { | ||||||
|  |                 stringBuilder.append("添加管理员"); | ||||||
|  |                 if (e == null) { | ||||||
|  |                     stringBuilder.append("objectId:" + objectId); | ||||||
|  |                 } else { | ||||||
|  |                     stringBuilder.append("创建数据失败:" + e.getMessage()); | ||||||
|  |                 } | ||||||
|  |                 stringBuilder.append(","); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         UserInfoBean userInfoBean2 = new UserInfoBean(); | ||||||
|  |         userInfoBean2.setUsername("201"); | ||||||
|  |         userInfoBean2.setPassword("123456"); | ||||||
|  |         userInfoBean2.setNickName("部门管理员"); | ||||||
|  |         userInfoBean2.setUserLevel(ConstansUserManager.Level_2); | ||||||
|  |         userInfoBean2.setUserType(ConstansUserManager.UserType_1); | ||||||
|  |         userInfoBean2.setEvaluate(""); | ||||||
|  |         userInfoBean2.signUp(new SaveListener<UserInfoBean>() { | ||||||
|  |             @Override | ||||||
|  |             public void done(UserInfoBean objectId, BmobException e) { | ||||||
|  |                 stringBuilder.append("部门管理员"); | ||||||
|  |                 if (e == null) { | ||||||
|  |                     stringBuilder.append("objectId:" + objectId); | ||||||
|  |                 } else { | ||||||
|  |                     stringBuilder.append("创建数据失败:" + e.getMessage()); | ||||||
|  |                 } | ||||||
|  |                 stringBuilder.append(","); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  |         UserInfoBean userInfoBean3 = new UserInfoBean(); | ||||||
|  |         userInfoBean3.setUsername(ConstansUserManager.Level_3+"1"); | ||||||
|  |         userInfoBean3.setPassword("123456"); | ||||||
|  |         userInfoBean3.setNickName("学生1"); | ||||||
|  |         userInfoBean3.setUserLevel(ConstansUserManager.Level_3); | ||||||
|  |         userInfoBean3.setUserType(ConstansUserManager.UserType_2); | ||||||
|  |         userInfoBean3.setEvaluate(""); | ||||||
|  |         userInfoBean3.signUp(new SaveListener<UserInfoBean>() { | ||||||
|  |             @Override | ||||||
|  |             public void done(UserInfoBean objectId, BmobException e) { | ||||||
|  |                 stringBuilder.append("维修员1"); | ||||||
|  |                 if (e == null) { | ||||||
|  |                     stringBuilder.append("objectId:" + objectId); | ||||||
|  |                 } else { | ||||||
|  |                     stringBuilder.append("创建数据失败:" + e.getMessage()); | ||||||
|  |                 } | ||||||
|  |                 stringBuilder.append(","); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         UserInfoBean userInfoBean4 = new UserInfoBean(); | ||||||
|  |         userInfoBean4.setUsername(ConstansUserManager.Level_3 + "2"); | ||||||
|  |         userInfoBean4.setPassword("123456"); | ||||||
|  |         userInfoBean4.setNickName("学生2"); | ||||||
|  |         userInfoBean4.setUserLevel(ConstansUserManager.Level_3); | ||||||
|  |         userInfoBean4.setUserType(ConstansUserManager.UserType_2); | ||||||
|  |         userInfoBean4.setEvaluate(""); | ||||||
|  |         userInfoBean4.signUp(new SaveListener<UserInfoBean>() { | ||||||
|  |             @Override | ||||||
|  |             public void done(UserInfoBean objectId, BmobException e) { | ||||||
|  |                 stringBuilder.append("维修员2"); | ||||||
|  |                 if (e == null) { | ||||||
|  |                     stringBuilder.append("objectId:" + objectId); | ||||||
|  |                 } else { | ||||||
|  |                     stringBuilder.append("创建数据失败:" + e.getMessage()); | ||||||
|  |                 } | ||||||
|  |                 stringBuilder.append(","); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,24 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | public class SharedConfig { | ||||||
|  |     //用户信息
 | ||||||
|  |     public static String loginName = "loginName"; | ||||||
|  |     public static String nickName = "nickName"; | ||||||
|  |     public static String whToken = "whToken"; | ||||||
|  |     public static String objectId = "objectId"; | ||||||
|  |     public static String userLevel = "userLevel"; | ||||||
|  |     public static String userType = "userType"; | ||||||
|  |     public static String type = "type"; | ||||||
|  |     public static String isLogin = "isLogin"; | ||||||
|  |     public static String isPda = "isPda"; | ||||||
|  |     public static String isTheme = "isTheme"; | ||||||
|  |     public static String isBg = "isBg"; | ||||||
|  |     public static String isBg_1 = "1"; | ||||||
|  |     public static String isBg_2 = "2"; | ||||||
|  |     public static String isBg_3 = "3"; | ||||||
|  |     public static String isBg_4 = "4"; | ||||||
|  |     public static String isThemeSys = "1"; | ||||||
|  |     public static String isThemeMy = "2"; | ||||||
|  |     public static String initTimeValue = "2021-12-07"; | ||||||
|  |     public static String initTime = "initTime"; | ||||||
|  | } | ||||||
| @ -0,0 +1,76 @@ | |||||||
|  | package com.stu.assistant.uitls; | ||||||
|  | 
 | ||||||
|  | import android.app.Activity; | ||||||
|  | import android.app.Application; | ||||||
|  | import android.graphics.Color; | ||||||
|  | import android.os.Bundle; | ||||||
|  | import android.util.Log; | ||||||
|  | import android.view.Gravity; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | import android.widget.FrameLayout; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | public class ShowClassNameCallBack implements Application.ActivityLifecycleCallbacks { | ||||||
|  |     @Override | ||||||
|  |     public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onActivityStarted(@NonNull Activity activity) { | ||||||
|  |         if (activity == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if (activity.getWindow() == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         if (activity.getWindow().getDecorView() == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         String activitySimpleName = activity.getClass().getSimpleName(); | ||||||
|  | 
 | ||||||
|  |         Log.i("clazz",activity.getClass().getName()); | ||||||
|  |         DragTextView textView = new DragTextView(activity); | ||||||
|  |         textView.setText(activitySimpleName); | ||||||
|  |         textView.setTextSize(18f); | ||||||
|  |         textView.setTextColor(Color.parseColor("#FF0000")); | ||||||
|  |         textView.setPadding(0, 50, 0, 0); | ||||||
|  | 
 | ||||||
|  |         textView.setClickable(true); | ||||||
|  |         View decorView= activity.getWindow().getDecorView(); | ||||||
|  |         FrameLayout frameLayout= decorView.findViewById(android.R.id.content); | ||||||
|  |         textView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); | ||||||
|  |         textView.setGravity(Gravity.CENTER); | ||||||
|  |         frameLayout.addView(textView); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onActivityResumed(@NonNull Activity activity) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onActivityPaused(@NonNull Activity activity) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onActivityStopped(@NonNull Activity activity) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onActivityDestroyed(@NonNull Activity activity) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,30 @@ | |||||||
|  | package com.stu.assistant.view; | ||||||
|  | 
 | ||||||
|  | import android.content.Context; | ||||||
|  | import android.util.AttributeSet; | ||||||
|  | import com.stu.assistant.R; | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; | ||||||
|  | 
 | ||||||
|  | public class MySwipeRefreshLayout extends SwipeRefreshLayout { | ||||||
|  | 
 | ||||||
|  |     public MySwipeRefreshLayout(@NonNull Context context) { | ||||||
|  |         super(context); | ||||||
|  |         init(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public MySwipeRefreshLayout(@NonNull Context context, @Nullable AttributeSet attrs) { | ||||||
|  |         super(context, attrs); | ||||||
|  |         init(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void init() { | ||||||
|  |         setColorSchemeResources( | ||||||
|  |                 R.color.app_yellow, | ||||||
|  |                 R.color.app_yellow, | ||||||
|  |                 R.color.app_yellow, | ||||||
|  |                 R.color.app_yellow); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,12 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <set xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  |     <translate | ||||||
|  |         android:duration="200" | ||||||
|  |         android:fromYDelta="100" | ||||||
|  |         android:toYDelta="0" /> | ||||||
|  |     <alpha | ||||||
|  |         android:duration="200" | ||||||
|  |         android:fromAlpha="0.0" | ||||||
|  |         android:toAlpha="1.0" /> | ||||||
|  | 
 | ||||||
|  | </set> | ||||||
| @ -0,0 +1,12 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <set xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  |     <translate | ||||||
|  |         android:duration="200" | ||||||
|  |         android:fromYDelta="0" | ||||||
|  |         android:toYDelta="100" /> | ||||||
|  |     <alpha | ||||||
|  |         android:duration="200" | ||||||
|  |         android:fromAlpha="1.0" | ||||||
|  |         android:toAlpha="0.0" /> | ||||||
|  | 
 | ||||||
|  | </set> | ||||||
| @ -0,0 +1,30 @@ | |||||||
|  | <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:aapt="http://schemas.android.com/aapt" | ||||||
|  |     android:width="108dp" | ||||||
|  |     android:height="108dp" | ||||||
|  |     android:viewportWidth="108" | ||||||
|  |     android:viewportHeight="108"> | ||||||
|  |     <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z"> | ||||||
|  |         <aapt:attr name="android:fillColor"> | ||||||
|  |             <gradient | ||||||
|  |                 android:endX="85.84757" | ||||||
|  |                 android:endY="92.4963" | ||||||
|  |                 android:startX="42.9492" | ||||||
|  |                 android:startY="49.59793" | ||||||
|  |                 android:type="linear"> | ||||||
|  |                 <item | ||||||
|  |                     android:color="#44000000" | ||||||
|  |                     android:offset="0.0" /> | ||||||
|  |                 <item | ||||||
|  |                     android:color="#00000000" | ||||||
|  |                     android:offset="1.0" /> | ||||||
|  |             </gradient> | ||||||
|  |         </aapt:attr> | ||||||
|  |     </path> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#FFFFFF" | ||||||
|  |         android:fillType="nonZero" | ||||||
|  |         android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z" | ||||||
|  |         android:strokeWidth="1" | ||||||
|  |         android:strokeColor="#00000000" /> | ||||||
|  | </vector> | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:padding="20dp" | ||||||
|  |     android:shape="rectangle"> | ||||||
|  |     <solid android:color="?attr/colortheme" /> | ||||||
|  |     <corners | ||||||
|  |         android:bottomLeftRadius="10dp" | ||||||
|  |         android:bottomRightRadius="10dp" | ||||||
|  |         android:topLeftRadius="10dp" | ||||||
|  |         android:topRightRadius="10dp" /> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,7 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:padding="20dp" | ||||||
|  |     android:shape="rectangle"> | ||||||
|  |     <solid android:color="?attr/colortheme" /> | ||||||
|  |     <corners android:radius="8dp" /> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:padding="20dp" | ||||||
|  |     android:shape="rectangle"> | ||||||
|  |     <solid android:color="@color/bg" /> | ||||||
|  |     <corners | ||||||
|  |         android:bottomLeftRadius="10dp" | ||||||
|  |         android:bottomRightRadius="10dp" | ||||||
|  |         android:topLeftRadius="10dp" | ||||||
|  |         android:topRightRadius="10dp" /> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,5 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  |     <solid android:color="?attr/colortheme" /> | ||||||
|  |     <corners android:radius="4dp" /> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,17 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:shape="rectangle" | ||||||
|  |     tools:ignore="MissingDefaultResource"> | ||||||
|  | 
 | ||||||
|  |     <solid android:color="@color/white" /> | ||||||
|  | 
 | ||||||
|  |     <corners | ||||||
|  |         android:topLeftRadius="20dp" | ||||||
|  |         android:topRightRadius="20dp" | ||||||
|  |         android:bottomLeftRadius="0dp" | ||||||
|  |         android:bottomRightRadius="0dp" | ||||||
|  |  /> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,10 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  | 
 | ||||||
|  |     <solid android:color="@color/white" /> | ||||||
|  | 
 | ||||||
|  |     <corners android:radius="8dp" /> | ||||||
|  |     <stroke | ||||||
|  |         android:width="1dp" | ||||||
|  |         android:color="?attr/colortheme"/> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,9 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  | 
 | ||||||
|  |     <solid android:color="@color/white" /> | ||||||
|  |     <corners android:radius="4dp" /> | ||||||
|  |     <stroke | ||||||
|  |         android:width="1dp" | ||||||
|  |         android:color="?attr/colortheme"/> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,9 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  | 
 | ||||||
|  |     <solid android:color="@color/white" /> | ||||||
|  |     <corners android:radius="8dp" /> | ||||||
|  |     <stroke | ||||||
|  |         android:width="1dp" | ||||||
|  |         android:color="@color/white"/> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,170 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:width="108dp" | ||||||
|  |     android:height="108dp" | ||||||
|  |     android:viewportWidth="108" | ||||||
|  |     android:viewportHeight="108"> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#3DDC84" | ||||||
|  |         android:pathData="M0,0h108v108h-108z" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M9,0L9,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M19,0L19,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M29,0L29,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M39,0L39,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M49,0L49,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M59,0L59,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M69,0L69,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M79,0L79,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M89,0L89,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M99,0L99,108" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,9L108,9" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,19L108,19" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,29L108,29" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,39L108,39" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,49L108,49" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,59L108,59" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,69L108,69" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,79L108,79" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,89L108,89" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M0,99L108,99" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M19,29L89,29" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M19,39L89,39" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M19,49L89,49" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M19,59L89,59" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M19,69L89,69" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M19,79L89,79" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M29,19L29,89" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M39,19L39,89" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M49,19L49,89" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M59,19L59,89" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M69,19L69,89" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  |     <path | ||||||
|  |         android:fillColor="#00000000" | ||||||
|  |         android:pathData="M79,19L79,89" | ||||||
|  |         android:strokeWidth="0.8" | ||||||
|  |         android:strokeColor="#33FFFFFF" /> | ||||||
|  | </vector> | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||||||
|  |     <item android:color="?attr/colortheme" android:state_checked="true" /> | ||||||
|  |     <!-- not selected --> | ||||||
|  |     <item android:color="@color/black" android:state_checked="false" /> | ||||||
|  | </selector> | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:padding="20dp" | ||||||
|  |     android:shape="rectangle"> | ||||||
|  |     <solid android:color="?attr/colortheme" /> | ||||||
|  |     <corners | ||||||
|  |         android:bottomLeftRadius="10dp" | ||||||
|  |         android:bottomRightRadius="10dp" | ||||||
|  |         android:topLeftRadius="10dp" | ||||||
|  |         android:topRightRadius="10dp" /> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,7 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:padding="20dp" | ||||||
|  |     android:shape="rectangle"> | ||||||
|  |     <solid android:color="?attr/colortheme" /> | ||||||
|  |     <corners android:radius="8dp" /> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:padding="20dp" | ||||||
|  |     android:shape="rectangle"> | ||||||
|  |     <solid android:color="@color/bg" /> | ||||||
|  |     <corners | ||||||
|  |         android:bottomLeftRadius="10dp" | ||||||
|  |         android:bottomRightRadius="10dp" | ||||||
|  |         android:topLeftRadius="10dp" | ||||||
|  |         android:topRightRadius="10dp" /> | ||||||
|  | </shape> | ||||||
| @ -0,0 +1,118 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:background="@color/white" | ||||||
|  |     android:id="@+id/lay" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     tools:context=".activity.AddTableActivity"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/base_heard_layout" /> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:id="@+id/title_time_view" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="40dp" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/time" | ||||||
|  |             android:layout_width="30dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="时间" | ||||||
|  |             android:textColor="@color/color_1e1f20_45" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  | 
 | ||||||
|  |         <View | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@color/white" /> | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/time1" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_weight="1" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="周一" | ||||||
|  |             android:textColor="@color/color_1e1f20_45" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  | 
 | ||||||
|  |         <View | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@color/white" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/time2" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_weight="1" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="周二" | ||||||
|  |             android:textColor="@color/color_1e1f20_45" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  | 
 | ||||||
|  |         <View | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@color/white" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/time3" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_weight="1" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="周三" | ||||||
|  |             android:textColor="@color/color_1e1f20_45" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  | 
 | ||||||
|  |         <View | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@color/white" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/time4" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_weight="1" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="周四" | ||||||
|  |             android:textColor="@color/color_1e1f20_45" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  | 
 | ||||||
|  |         <View | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@color/white" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/time5" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_weight="1" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="周五" | ||||||
|  |             android:textColor="@color/color_1e1f20_45" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  |     <View | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="1dp" | ||||||
|  |         android:background="@color/white" /> | ||||||
|  |     <com.stu.assistant.view.MySwipeRefreshLayout | ||||||
|  |         android:id="@+id/swip_rf" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="0dp" | ||||||
|  |         android:layout_weight="1"> | ||||||
|  | 
 | ||||||
|  |         <androidx.recyclerview.widget.RecyclerView | ||||||
|  |             android:id="@+id/mrv" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" /> | ||||||
|  |     </com.stu.assistant.view.MySwipeRefreshLayout> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,230 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     tools:context=".activity.AddTableDialogActivity"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/base_heard_layout" /> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="30dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="课程名字" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/edit_table_name" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入课程名字" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="上课地点" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/edit_address" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入上课地点" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="任课老师" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <Spinner | ||||||
|  |             android:id="@+id/edit_teacherName" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:entries="@array/teacher" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="课程周数" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <Spinner | ||||||
|  |             android:id="@+id/spinner_day" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:entries="@array/week" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="课程节次" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <Spinner | ||||||
|  |             android:id="@+id/spinner_time" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:entries="@array/time" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="注意事项" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/edit_mark" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入注意事项" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:id="@+id/OnPushClick" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="50dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/btn_red_bg_4" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:text="添加" | ||||||
|  |         android:textColor="@color/white" | ||||||
|  |         android:textSize="16sp" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,120 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     tools:context=".activity.AddTableDialogActivity"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/base_heard_layout" /> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="30dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="课程名字" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/edit_task_name" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入课程名字" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="截止时间" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="?attr/colortheme" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/tv_time" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请选择截止时间" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:minHeight="50dp" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/edit_msg" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="150dp" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="top|left" | ||||||
|  |             android:hint="请输入作业内容" | ||||||
|  |             android:paddingLeft="12dp" | ||||||
|  |             android:paddingTop="10dp" | ||||||
|  |             android:paddingRight="12dp" | ||||||
|  |             android:paddingBottom="12dp" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:id="@+id/OnPushClick" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="50dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/btn_red_bg_4" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:text="添加" | ||||||
|  |         android:textColor="@color/white" | ||||||
|  |         android:textSize="16sp" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,154 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     tools:context=".activity.LoginActivity"> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="30dp" | ||||||
|  |         android:background="@color/black" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:id="@+id/app_name" | ||||||
|  |         android:layout_width="wrap_content" | ||||||
|  |         android:layout_height="40dp" | ||||||
|  |         android:text="@string/app_name" | ||||||
|  |         android:textColor="@color/black" | ||||||
|  |         android:textSize="24sp" | ||||||
|  |         android:textStyle="bold" | ||||||
|  |         android:visibility="invisible" /> | ||||||
|  | 
 | ||||||
|  |     <ImageView | ||||||
|  |         android:layout_width="wrap_content" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:layout_gravity="center" | ||||||
|  |         android:background="@mipmap/ic_big" /> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="30dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="账号" | ||||||
|  |             android:visibility="gone" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:visibility="gone" | ||||||
|  |             android:background="@color/colorBlue" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/tv_username" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入账号" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="20dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="密码" | ||||||
|  |             android:visibility="gone" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:visibility="gone" | ||||||
|  |             android:background="@color/colorBlue" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/tv_userpassword" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入密码" | ||||||
|  |             android:password="true" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:gravity="right|center_vertical" | ||||||
|  |         android:onClick="OnRegister" | ||||||
|  |         android:paddingTop="15dp" | ||||||
|  |         android:paddingRight="16dp" | ||||||
|  |         android:paddingBottom="10dp" | ||||||
|  |         android:text="注册账号" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:id="@+id/button_login" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="10dp" | ||||||
|  |         android:layout_marginTop="40dp" | ||||||
|  |         android:layout_marginRight="10dp" | ||||||
|  |         android:layout_marginBottom="30dp" | ||||||
|  |         android:background="@drawable/btn_red_bg_4" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:text="登录" | ||||||
|  |         android:textColor="@color/white" | ||||||
|  |         android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:text="技术支持" | ||||||
|  |         android:visibility="invisible" | ||||||
|  |         android:textColor="@color/text_color_999999" | ||||||
|  |         android:textSize="12sp" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:id="@+id/version_name" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:text="111111" | ||||||
|  |         android:visibility="invisible" | ||||||
|  |         android:textColor="@color/text_color_999999" | ||||||
|  |         android:textSize="12sp" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="0dp" | ||||||
|  |         android:layout_weight="1" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,22 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:id="@+id/lay" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     tools:context=".activity.MainActivity"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/base_heard_layout" /> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/include_top_toolbar" android:visibility="gone"/> | ||||||
|  | 
 | ||||||
|  |     <GridView | ||||||
|  |         android:id="@+id/main_gridview" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="match_parent" | ||||||
|  |         android:numColumns="3" | ||||||
|  |         android:paddingTop="10dp" | ||||||
|  |         android:verticalSpacing="10dp" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,219 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/base_heard_layout" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:paddingTop="15dp" | ||||||
|  |         android:paddingRight="16dp" | ||||||
|  |         android:textColor="?attr/colortheme" | ||||||
|  |         android:textSize="17sp" | ||||||
|  |         android:textStyle="bold" | ||||||
|  |         android:visibility="invisible" /> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="60dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal" | ||||||
|  |         android:visibility="gone"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="昵称" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="@color/colorBlue" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/tv_nickname" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入昵称" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="20dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="账号" | ||||||
|  |             android:textSize="16sp" | ||||||
|  |             android:visibility="gone" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="@color/colorBlue" | ||||||
|  |             android:visibility="gone" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/tv_username" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入账号" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="20dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="密码" | ||||||
|  |             android:textSize="16sp" | ||||||
|  |             android:visibility="gone" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="@color/colorBlue" | ||||||
|  |             android:visibility="gone" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/tv_userpassword" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入密码" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="20dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal" | ||||||
|  |         android:visibility="gone"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="年龄" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="@color/colorBlue" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/tv_userAge" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入年龄" | ||||||
|  |             android:inputType="number" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="20dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:orientation="horizontal" | ||||||
|  |         android:visibility="gone"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="80dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:focusable="false" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:text="地址" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:layout_width="1dp" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginTop="6dp" | ||||||
|  |             android:layout_marginBottom="6dp" | ||||||
|  |             android:background="@color/colorBlue" /> | ||||||
|  | 
 | ||||||
|  |         <EditText | ||||||
|  |             android:id="@+id/tv_userAddress" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" | ||||||
|  |             android:layout_marginLeft="10dp" | ||||||
|  |             android:background="@null" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:hint="请输入地址" | ||||||
|  |             android:textSize="14sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:id="@+id/btn_register" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="50dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/btn_red_bg_4" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:onClick="btnRegisterOnClick" | ||||||
|  |         android:text="注册" | ||||||
|  |         android:textColor="@color/white" | ||||||
|  |         android:textSize="16sp" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,104 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:id="@+id/lay" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:background="@color/bg" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     tools:context=".activity.SettingActivity"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/base_heard_layout" /> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="12dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_marginRight="12dp" | ||||||
|  |         android:layout_marginBottom="10dp" | ||||||
|  |         android:background="@drawable/corners_org_item_with" | ||||||
|  |         android:gravity="center_vertical" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/tv_account" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:paddingLeft="12dp" | ||||||
|  |             android:text="账号:" | ||||||
|  |             android:textColor="@color/black" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="12dp" | ||||||
|  |         android:layout_marginTop="4dp" | ||||||
|  |         android:layout_marginRight="12dp" | ||||||
|  |         android:layout_marginBottom="10dp" | ||||||
|  |         android:background="@drawable/corners_org_item_with" | ||||||
|  |         android:gravity="center_vertical" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/tv_color" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:drawableRight="@mipmap/ic_right" | ||||||
|  |             android:drawablePadding="16dp" | ||||||
|  |             android:onClick="OnColorClick" | ||||||
|  |             android:paddingLeft="12dp" | ||||||
|  |             android:text="主题色变更" | ||||||
|  |             android:textColor="@color/black" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="12dp" | ||||||
|  |         android:layout_marginTop="4dp" | ||||||
|  |         android:layout_marginRight="12dp" | ||||||
|  |         android:layout_marginBottom="10dp" | ||||||
|  |         android:background="@drawable/corners_org_item_with" | ||||||
|  |         android:gravity="center_vertical" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/tv_bg" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:drawableRight="@mipmap/ic_right" | ||||||
|  |             android:drawablePadding="16dp" | ||||||
|  |             android:onClick="OnBgClick" | ||||||
|  |             android:paddingLeft="12dp" | ||||||
|  |             android:text="更改课表壁纸" | ||||||
|  |             android:textColor="@color/black" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="0dp" | ||||||
|  |         android:layout_weight="1" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:id="@+id/btn_register" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_marginLeft="20dp" | ||||||
|  |         android:layout_marginTop="50dp" | ||||||
|  |         android:layout_marginRight="20dp" | ||||||
|  |         android:background="@drawable/btn_red_bg_4" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:onClick="BtnOutOnClick" | ||||||
|  |         android:text="退出" | ||||||
|  |         android:textColor="@color/white" | ||||||
|  |         android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,50 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||||
|  |     xmlns:tools="http://schemas.android.com/tools" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:background="@color/bg" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     tools:context=".activity.TableListActivity"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/base_heard_layout" /> | ||||||
|  | 
 | ||||||
|  |     <com.stu.assistant.view.MySwipeRefreshLayout | ||||||
|  |         android:id="@+id/swip_rf" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="0dp" | ||||||
|  |         android:layout_marginTop="10dp" | ||||||
|  |         android:layout_weight="1" | ||||||
|  |         android:paddingLeft="12dp" | ||||||
|  |         android:paddingRight="12dp"> | ||||||
|  | 
 | ||||||
|  |         <androidx.recyclerview.widget.RecyclerView | ||||||
|  |             android:id="@+id/mrv" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="match_parent" /> | ||||||
|  |     </com.stu.assistant.view.MySwipeRefreshLayout> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:background="@color/white" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:paddingTop="10dp" | ||||||
|  |         android:paddingBottom="10dp"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/btn_register" | ||||||
|  |             android:layout_width="match_parent" | ||||||
|  |             android:layout_height="50dp" | ||||||
|  |             android:layout_marginLeft="20dp" | ||||||
|  |             android:layout_marginRight="20dp" | ||||||
|  |             android:background="@drawable/btn_red_bg_4" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:onClick="BtnAddOnClick" | ||||||
|  |             android:text="添加课表" | ||||||
|  |             android:textColor="@color/white" | ||||||
|  |             android:textSize="16sp" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | 
 | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,10 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:fitsSystemWindows="false" | ||||||
|  |     android:orientation="vertical"> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/fragment_base" /> | ||||||
|  | 
 | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,74 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:id="@+id/title_lay" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="wrap_content" | ||||||
|  |     android:background="?attr/colortheme" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     android:paddingLeft="12dp" | ||||||
|  |     android:paddingRight="12dp"> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="40dp" | ||||||
|  |         android:layout_marginTop="30dp" | ||||||
|  |         android:gravity="center"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/back_tv" | ||||||
|  |             android:layout_width="wrap_content" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:gravity="center|left" | ||||||
|  |             android:text="返回" | ||||||
|  |             android:textColor="@color/white" | ||||||
|  |             android:textSize="18sp" | ||||||
|  |             android:textStyle="bold" | ||||||
|  |             android:visibility="gone" /> | ||||||
|  | 
 | ||||||
|  |         <LinearLayout | ||||||
|  |             android:id="@+id/back_lay" | ||||||
|  |             android:layout_width="60dp" | ||||||
|  |             android:layout_height="60dp" | ||||||
|  |             android:gravity="center|left"> | ||||||
|  | 
 | ||||||
|  |             <ImageView | ||||||
|  |                 android:layout_width="36dp" | ||||||
|  |                 android:layout_height="36dp" | ||||||
|  |                 android:background="@mipmap/ic_back" /> | ||||||
|  |         </LinearLayout> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/title_tv" | ||||||
|  |             android:layout_width="0dp" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:layout_weight="1" | ||||||
|  |             android:gravity="center" | ||||||
|  |             android:textColor="@color/white" | ||||||
|  |             android:textSize="20sp" | ||||||
|  |             android:textStyle="bold" /> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         <LinearLayout | ||||||
|  |             android:layout_width="60dp" | ||||||
|  |             android:layout_height="60dp" | ||||||
|  |             android:gravity="center|left"> | ||||||
|  | 
 | ||||||
|  |             <TextView | ||||||
|  |                 android:id="@+id/other_tv" | ||||||
|  |                 android:layout_width="wrap_content" | ||||||
|  |                 android:layout_height="wrap_content" | ||||||
|  |                 android:gravity="center|right" | ||||||
|  |                 android:text="其他" | ||||||
|  |                 android:textColor="@color/white" | ||||||
|  |                 android:textSize="18sp" | ||||||
|  |                 android:textStyle="bold" | ||||||
|  |                 android:visibility="invisible" /> | ||||||
|  |         </LinearLayout> | ||||||
|  | 
 | ||||||
|  |         <ImageView | ||||||
|  |             android:id="@+id/other_img" | ||||||
|  |             android:layout_width="wrap_content" | ||||||
|  |             android:layout_height="wrap_content" | ||||||
|  |             android:visibility="gone" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,17 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:id="@+id/title_lay" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="wrap_content" | ||||||
|  |     android:background="?attr/colortheme" | ||||||
|  |     android:orientation="vertical" | ||||||
|  |     android:paddingLeft="12dp" | ||||||
|  |     android:paddingRight="12dp"> | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="40dp" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  |     </LinearLayout> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,53 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="wrap_content" | ||||||
|  |     android:layout_margin="10dp" | ||||||
|  |     android:background="@color/white" | ||||||
|  |     android:orientation="vertical"> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:gravity="center" | ||||||
|  |         android:padding="10dp" | ||||||
|  |         android:text="温馨提示" | ||||||
|  |         android:textColor="@color/black" | ||||||
|  |         android:textSize="16sp" /> | ||||||
|  | 
 | ||||||
|  |     <include layout="@layout/line_layout" /> | ||||||
|  | 
 | ||||||
|  |     <EditText | ||||||
|  |         android:id="@+id/mark_edit" | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:layout_margin="10dp" | ||||||
|  |         android:background="@drawable/corners_orange_shape" | ||||||
|  |         android:gravity="center|left" | ||||||
|  |         android:hint="请输入处理内容" | ||||||
|  |         android:paddingLeft="10dp" | ||||||
|  |         android:singleLine="true" | ||||||
|  |         android:textColor="@color/black" | ||||||
|  |         android:textColorHint="@color/black" | ||||||
|  |         android:textSize="14sp" /> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     <LinearLayout | ||||||
|  |         android:layout_width="match_parent" | ||||||
|  |         android:layout_height="50dp" | ||||||
|  |         android:orientation="horizontal"> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/tv_can" | ||||||
|  |             style="@style/input_dialog_itemStyle" | ||||||
|  |             android:background="@color/color_1e1f20_4" | ||||||
|  |             android:text="取消" /> | ||||||
|  | 
 | ||||||
|  |         <TextView | ||||||
|  |             android:id="@+id/tv_ok" | ||||||
|  |             style="@style/input_dialog_itemStyle" | ||||||
|  |             android:background="?attr/colortheme" | ||||||
|  |             android:text="确定" | ||||||
|  |             android:textColor="@color/white" /> | ||||||
|  |     </LinearLayout> | ||||||
|  | </LinearLayout> | ||||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue