diff --git a/app/build.gradle b/app/build.gradle
index 7a40823..5d39e8a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -30,6 +30,9 @@ android {
// but continue the build even when errors are found:
abortOnError false
}
+ dataBinding {
+ enabled true
+ }
}
dependencies {
@@ -50,6 +53,14 @@ dependencies {
api 'com.hjq:xxpermissions:5.5'
+ //MVVM要用到的
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1'
+ implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0-alpha03"
+ // ViewModel and LiveData
+ implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
+
+
// api 'androidx.cardview:cardview:1.0.0-beta01'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 85f47ab..42addca 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -27,7 +27,7 @@
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/HttpServerConnection.java b/app/src/main/java/com/sibyl/HttpFileDominator/HttpServerConnection.java
index 98d0498..03f52e4 100644
--- a/app/src/main/java/com/sibyl/HttpFileDominator/HttpServerConnection.java
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/HttpServerConnection.java
@@ -98,7 +98,8 @@ private static String httpReturnCodeToString(int return_code) {
public void run() {
ipAddress = getClientIpAddress();
- launcherActivity.sendConnectionStartMessage(ipAddress);
+ //SasukeTodo 先注释掉,后面把Activity整好了记得打开
+// launcherActivity.sendConnectionStartMessage(ipAddress);
try {
InputStream theInputStream;
@@ -132,7 +133,8 @@ public void run() {
}
} finally {
s("Closing connection.");
- launcherActivity.sendConnectionEndMessage(ipAddress);
+ //SasukeTodo 先注释掉,后面把Activity整好了记得打开
+// launcherActivity.sendConnectionEndMessage(ipAddress);
}
}
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity.kt b/app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity.kt
new file mode 100644
index 0000000..5ae37da
--- /dev/null
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity.kt
@@ -0,0 +1,9 @@
+package com.sibyl.HttpFileDominator.activities
+
+import androidx.appcompat.app.AppCompatActivity
+
+/**
+ * @author Sasuke on 2020/6/23.
+ */
+class BaseActivity: AppCompatActivity() {
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity.java b/app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity0.java
similarity index 98%
rename from app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity.java
rename to app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity0.java
index 4ad8fa6..c5e388c 100644
--- a/app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity.java
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/activities/BaseActivity0.java
@@ -44,7 +44,7 @@
import java.util.ArrayList;
-public class BaseActivity extends AppCompatActivity {
+public class BaseActivity0 extends AppCompatActivity {
public static final int HANDLER_CONNECTION_START = 42;
public static final int HANDLER_CONNECTION_END = 4242;
@@ -77,12 +77,12 @@ public class BaseActivity extends AppCompatActivity {
public void sendConnectionStartMessage(String ipAddress) {
Log.d("mm", "begin: " + ipAddress + " " + this);
- mHandler.handleMessage(mHandler.obtainMessage(BaseActivity.HANDLER_CONNECTION_START, ipAddress));
+ mHandler.handleMessage(mHandler.obtainMessage(BaseActivity0.HANDLER_CONNECTION_START, ipAddress));
}
public void sendConnectionEndMessage(String ipAddress) {
Log.d("mm", "end: " + ipAddress + " " + this);
- mHandler.handleMessage(mHandler.obtainMessage(BaseActivity.HANDLER_CONNECTION_END, ipAddress));
+ mHandler.handleMessage(mHandler.obtainMessage(BaseActivity0.HANDLER_CONNECTION_END, ipAddress));
}
@Override
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/activities/MainActivity.java b/app/src/main/java/com/sibyl/HttpFileDominator/activities/MainActivity0.java
similarity index 98%
rename from app/src/main/java/com/sibyl/HttpFileDominator/activities/MainActivity.java
rename to app/src/main/java/com/sibyl/HttpFileDominator/activities/MainActivity0.java
index a140ebf..3f38acb 100644
--- a/app/src/main/java/com/sibyl/HttpFileDominator/activities/MainActivity.java
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/activities/MainActivity0.java
@@ -38,7 +38,7 @@
import java.util.Iterator;
import java.util.List;
-public class MainActivity extends BaseActivity {
+public class MainActivity0 extends BaseActivity0 {
public static final int REQUEST_CODE = 1024;
@@ -151,9 +151,9 @@ public void dealChangeMode(){
ArrayList tempUris = MyHttpServer.getNormalUris();//先加载默认模式的数据
if (isClipboardMode){
//剪切板内容写入到文件
- JsonDominator.fire2Dir(ClipboardUtil.getText(MainActivity.this), getClipboardFile());
+ JsonDominator.fire2Dir(ClipboardUtil.getText(MainActivity0.this), getClipboardFile());
tempUris = new ArrayList<>();
- tempUris.add(new UriInterpretation(Uri.fromFile(getClipboardFile()), ClipboardUtil.getText(MainActivity.this), getContentResolver()));
+ tempUris.add(new UriInterpretation(Uri.fromFile(getClipboardFile()), ClipboardUtil.getText(MainActivity0.this), getContentResolver()));
MyHttpServer.setClipboardUris(tempUris);
}
@@ -247,7 +247,7 @@ protected void addNewFlex2UI(final ArrayList newUriList, fina
public void run() {
//如果是剪切板模式
if (newUriList.size() == 1 && newUriList.get(0).isClipboardType){
- final View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.flex_item, flexboxLayout, false);
+ final View view = LayoutInflater.from(MainActivity0.this).inflate(R.layout.flex_item, flexboxLayout, false);
view.findViewById(R.id.divider).setVisibility(View.GONE);
String showText = newUriList.get(0).clipboardText.isEmpty()?"(剪切板为空)" : newUriList.get(0).clipboardText;
((TextView) view.findViewById(R.id.itemNameTv)).setText(showText);
@@ -258,7 +258,7 @@ public void run() {
}
//如果是普通模式
for (UriInterpretation uriInterpretation : newUriList) {
- final View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.flex_item, flexboxLayout, false);
+ final View view = LayoutInflater.from(MainActivity0.this).inflate(R.layout.flex_item, flexboxLayout, false);
view.setTag(uriInterpretation);//把uriInterpretation保存到tag,到时候点击时用它来找到实时的index
((TextView) view.findViewById(R.id.itemNameTv)).setText(uriInterpretation.getPath());
((ImageView) view.findViewById(R.id.isFolderIcon)).setVisibility(uriInterpretation.isDirectory() ? View.VISIBLE : View.GONE);
@@ -461,19 +461,19 @@ private void grantPermissions() {
@Override
public void hasPermission(List granted, boolean isAll) {
if (isAll) {
- BatteryOptiDominator.requestIgnoreBatteryOpti(MainActivity.this);
+ BatteryOptiDominator.requestIgnoreBatteryOpti(MainActivity0.this);
}
}
@Override
public void noPermission(List denied, boolean quick) {
if (quick) {
- new AlertDialog.Builder(MainActivity.this)
+ new AlertDialog.Builder(MainActivity0.this)
.setMessage("请允许权限")
.setPositiveButton("好的", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- XXPermissions.gotoPermissionSettings(MainActivity.this);
+ XXPermissions.gotoPermissionSettings(MainActivity0.this);
}
})
.show();
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/activities/TempActivity.kt b/app/src/main/java/com/sibyl/HttpFileDominator/activities/TempActivity.kt
index 86c1d04..12674d9 100644
--- a/app/src/main/java/com/sibyl/HttpFileDominator/activities/TempActivity.kt
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/activities/TempActivity.kt
@@ -3,6 +3,7 @@ package com.sibyl.HttpFileDominator.activities
import android.app.Activity
import android.content.Intent
import android.os.Bundle
+import com.sibyl.HttpFileDominator.mainactivity.view.MainActivity
/**
* @author Sasuke on 2020/6/15.
@@ -13,7 +14,7 @@ import android.os.Bundle
class TempActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- startActivity(Intent(this,MainActivity::class.java))
+ startActivity(Intent(this, MainActivity::class.java))
finish()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/model/MainModel.kt b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/model/MainModel.kt
new file mode 100644
index 0000000..6e99471
--- /dev/null
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/model/MainModel.kt
@@ -0,0 +1,11 @@
+package com.sibyl.HttpFileDominator.mainactivity.model
+
+import androidx.lifecycle.ViewModel
+import com.sibyl.HttpFileDominator.mainactivity.repo.MainRepo
+
+/**
+ * @author HUANGSHI-PC on 2020-03-06 0006.
+ */
+class MainModel(val repo: MainRepo): ViewModel() {
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/repo/MainModelFactory.kt b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/repo/MainModelFactory.kt
new file mode 100644
index 0000000..0886684
--- /dev/null
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/repo/MainModelFactory.kt
@@ -0,0 +1,14 @@
+package com.sibyl.HttpFileDominator.mainactivity.repo
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import com.sibyl.HttpFileDominator.mainactivity.model.MainModel
+
+/**
+ * @author HUANGSHI-PC on 2020-03-06 0006.
+ */
+class MainModelFactory(val repo: MainRepo): ViewModelProvider.Factory {
+ override fun create(modelClass: Class): T {
+ return MainModel(repo) as T
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/repo/MainRepo.kt b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/repo/MainRepo.kt
new file mode 100644
index 0000000..a2e3bee
--- /dev/null
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/repo/MainRepo.kt
@@ -0,0 +1,7 @@
+package com.sibyl.HttpFileDominator.mainactivity.repo
+
+/**
+ * @author HUANGSHI-PC on 2020-03-06 0006.
+ */
+class MainRepo {
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/view/MainActivity.kt b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/view/MainActivity.kt
new file mode 100644
index 0000000..8e530fc
--- /dev/null
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/mainactivity/view/MainActivity.kt
@@ -0,0 +1,34 @@
+package com.sibyl.HttpFileDominator.mainactivity.view
+
+import android.os.Build
+import android.os.Bundle
+import android.view.WindowManager
+import androidx.appcompat.app.AppCompatActivity
+import androidx.databinding.DataBindingUtil
+import androidx.lifecycle.ViewModelProviders
+import com.sibyl.HttpFileDominator.R
+import com.sibyl.HttpFileDominator.databinding.ActivityMainBinding
+import com.sibyl.HttpFileDominator.mainactivity.model.MainModel
+import com.sibyl.HttpFileDominator.mainactivity.repo.MainModelFactory
+import com.sibyl.HttpFileDominator.mainactivity.repo.MainRepo
+
+class MainActivity : AppCompatActivity() {
+
+ val binding by lazy { DataBindingUtil.setContentView(this, R.layout.activity_main) }
+
+ val loginModel by lazy{ ViewModelProviders.of(this, MainModelFactory(MainRepo())).get(MainModel::class.java) }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ window.setBackgroundDrawable(null)
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
+ super.onCreate(savedInstanceState)
+ bind()
+
+ }
+
+ fun bind(){
+ binding.apply {
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/sibyl/HttpFileDominator/utils/NotiDominator.kt b/app/src/main/java/com/sibyl/HttpFileDominator/utils/NotiDominator.kt
index eb0458e..b2c5485 100644
--- a/app/src/main/java/com/sibyl/HttpFileDominator/utils/NotiDominator.kt
+++ b/app/src/main/java/com/sibyl/HttpFileDominator/utils/NotiDominator.kt
@@ -8,8 +8,8 @@ import android.content.Context
import android.content.Intent
import android.os.Build
import com.sibyl.HttpFileDominator.R
-import com.sibyl.HttpFileDominator.activities.MainActivity
import com.sibyl.HttpFileDominator.activities.TempActivity
+import com.sibyl.HttpFileDominator.mainactivity.view.MainActivity
/**
* @author Sasuke on 2020/6/15.
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 89d0680..2a49e22 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,66 +1,73 @@
-
+
-
+
-
+
-
+
-
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+
-
+
+
-
+ android:layout_height="match_parent">
-
+
+
+
-
-
-
+
+
+
-
+
-
-
\ No newline at end of file
+
+
+
\ No newline at end of file